[
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.