[ https://issues.apache.org/jira/browse/WICKET-2719?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12880714#action_12880714 ]
Ondra Žižka commented on WICKET-2719: ------------------------------------- ListDataProvider is inconsistent for inheritance. Let me explain: I would recommend only to change private final List<T> list; to protected List<T> list; It is inconsistent to have private list along with protected getData() - my use case: I have DAO-backed ListDataProvider( Collections.EMPTY_LIST ){ getData(){ iBatis.getMyBeans(); } } now size() calls list.size(), so it returns 0. If `list` was protected, I could set it in some kind of refreshData(), so size() and getData() would remain consistent. > Extract lazy AbstractListDataProvider out of ListDataProvider. > -------------------------------------------------------------- > > Key: WICKET-2719 > URL: https://issues.apache.org/jira/browse/WICKET-2719 > Project: Wicket > Issue Type: Improvement > Components: wicket > Affects Versions: 1.4.5 > Reporter: Maarten Billemont > Assignee: Juergen Donnerstag > Fix For: 1.4.7, 1.5-M1 > > Attachments: AbstractListProvider.java > > > ListDataProvider is handy for quickly providing a List as source for a > DataView; but it forces you to pass a list object during construction and > doesn't allow you to provide a new list. > That means it becomes hard to update the elements in the DataView when the > page is (re)rendered. It might be useful to provide an abstract superclass > to ListDataProvider which provides an abstract method for obtaining the list > allowing the developer to lazy-load the data he wants to show; making sure to > always load up-to-date data when the view is being rendered rather than data > he passed in during construction which may have become outdated. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.