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

Reply via email to