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