> > 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.
> 
> Unfortunately the only object that knows exactly how the paging should be
> set up is the listview and not the dao. How does your dao know the exact
> window size? If your window is too small you are issuing multiple queries,
> if your window is too big you are getting more than you need which is a
> waste of memory. In my app the user can change the size of any listview and
> it was a pain to keep maintaing paged list window size.
> 
> With this interface its transparent because you are getting all information
> you need with every request.

Look at OrderedPageableList in wicket-contrib-data. All the settings
related to presentation (paging window) are set bean-style. That way,
you get a list from the dao, then manipulate it to you likeing at any
point. Since data is not fetched until a method from the List
interface is called, this works just fine.

> >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.
> 
> I agree, it has an air of a more elegant approach, but there are a lot of
> caveats. What if someone tries to sort the list using Collections? Are you
> going to bring in 10000 rows with a window size of 20? Its too easy to do
> something like that, there is no way to know where the list comes from.

It's a read-only list that extends AbstractList. Like any other
read-only list, an Unsupported OperationException is thrown if someone
tries to sort it. If someone gets an iterator and wants to run through
10000 records, well, they should probably be a least a little bit
familiar with the implementation. If I'm using a LinkedList I know
that random access is slow and write my code accordingly, I don't see
how this is any different.


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to