I'm not sure if this is still a debate. but I really like keeping
ListView and PageableListView's model plain old lists. It's just as
easy to build paging into a List as it is into the component itself.
However, the way it is currently, my DAO can return a paging list and
set up exactly how said List gets it's data each time it pages;
exactly what a DAO is supposed to do. And even though the list has a
bunch of extra features for paging, sorting, or whatever, it's still a
list, which is what you expect to get back when you call a method like
findAll(). The way it's set up now is just a lovely way to separate
the data access from components.

On 7/27/05, Igor Vaynberg <[EMAIL PROTECTED]> wrote:
> > Why not have
> >
> > public interface DataProvider extends Serializable {
> >
> >       Iterator getElements(int first, int minCount);
> >       int getCount();
> > }
> >
> 
> I was definetely thinking of doing that, didn't get to it yet. A list was
> simply the most convinient because that's what EntityManager returns and I
> didn't have to rewrite too much existing listview code. As I said this was
> just a proof-of-concept to test the interface idea.
> 
> Maybe one of the wicket devels can create a project for us in one of the
> subprojects and we can collaborate if you are interested.
> 
> > If you have a List you have an Iterator and an Iterator will
> > work for any Collection (and more).  I think minCount should
> > tell just the minimum number of elements the iterator should
> > contain. This is just to get it easy and cheap from a List.
> > (Maybe alternatively it could also be just a hint so that the
> > iterator could actually be smaller).
> 
> If I understand you correctly you would like to provide the min amount of
> entries and have the iterator access more if they are needed? If so, this is
> one of the things I was trying to eliminate. Currently dataview asks your
> dataprovider for the exact segment of data it needs and so it eliminates the
> whole need for retrieving data window by window.
> If you want to connect a list all you have to do is list.sublist(first,
> first+count).iterator()
> 
> > Maybe keep the Object to IModel translation in the DataView
> > (ListView) - I have to extend it anyway. In case it is a
> > horizontal concern, you could easaly write a delegating
> > Iterator: (and plug it in whereever you need it)
> >
> > public class ModelIterator implements Iterator{
> >    private Iterator _delegate;
> >    public boolean hasNext(){
> >       return _delegate.hasNext();
> >    }
> >    public Object next(){
> >       return makeIModel(_delegate.next());
> >    }
> >    ......
> > }
> 
> In order to achieve this the default impl of getlistitemmodel() in the
> dataview would have to pass the object through unchanged. Is that what you
> are thinking?
> 
> Also, where would be a good point to wrap the iterator? I will have to play
> with this tomorrow to see. Let me know if you have any ideas.
> 
> Igor
> 
> 
> 
> 
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO September
> 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
> Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>


-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO September
19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to