You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Ondra Žižka (JIRA)" <ji...@apache.org> on 2010/06/21 06:10:25 UTC

[jira] Commented: (WICKET-2719) Extract lazy AbstractListDataProvider out of ListDataProvider.

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