Wow...ok...I'm making a total disaster of this. I can't help but think there's an easier way. :(
I've got this method in what we could call a "dao": public List<Incident> getFiltered(int first, int count, String orderBy) { String query = "select i from Incident i order by :orderBy"; Query q = this.em.createQuery(query); q.setParameter("orderBy", orderBy); q.setFirstResult(first); q.setMaxResults(count); return q.getResultList(); } And I've got started what might someday become a provider class: public class IncidentsProvider extends SortableDataProvider implements IDetachable { private transient List<Incident> incidents; /** * default ctor */ public IncidentsProvider(Integer first, Integer count, String orderBy) { this.incidents = myDao.getFiltered(first, count, orderBy); setSort("openDate", true); } public Iterator iterator(int first, int count) { return this.incidents.listIterator(first); //???? - what do do? } public int size() { return this.incidents.size(); } public IModel model(Object object) { return new Model((Serializable)object); } public void detach() { this.incidents = null; } } As you can see, I'm trying to marry my provider to my DAO as closely as possible...I'm not worried about elegance and cleanliness right now - just trying to take it one step at a time and get it *working*. I can make some sort of 'if asc then make desc' and vice/versa afterward.... Sorry, it's been a long day...maybe I need a break....two or three weeks ought to do it. On 7/18/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > then the only semidifficult part is the sorting - you need to come up with > some utils that append the sort for you. > > as far as paging it would translate directly to > > session.setFirstResult(queryparam.getFirst()).setMaxResults( > queryparam.getCount()); > > -Igor > > > > On 7/18/06, Vincent Jenks <[EMAIL PROTECTED]> wrote: > > > Well, I don't have DAOs in this particular project - it's an EJB3 > project where I'm simply using SLSBs as DAOs....so I have the > EntityManager to work from and I should be able to bring the two > together to facilitate this... > > This may be easier than I thought.... > > On 7/18/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote: > > yep, you have to code your daos with paging and sorting in mind, it cannot > > be slapped on as an afterthought. > > > > let me give you some clues > > > > see the attached QueryParam class, all my finder dao methods take it so > that > > they can page/sort accordingly. > > > > hope it gets you started > > > > > > -Igor > > > > > > > > > > On 7/18/06, Vincent Jenks < [EMAIL PROTECTED] > wrote: > > > Currently I don't have anything like the ContactsDatabase class in > > > 'examples' - I'm just pulling a list of data and displaying in a > > > ListView....but it appears now that I'm browsing through I'm going to > > > have to create one and implement some of the methods like you have in > > > order to get paging/sorting. > > > > > > I'll play w/ it...it was just a little more than I expected once I > > > started digging into it. > > > > > > On 7/18/06, Igor Vaynberg <[EMAIL PROTECTED]> wrote: > > > > what could be simpler then the dataview? its just like a listview only > > > > instead of being fed off the list it is fed from the idataprovider. > > > > > > > > class mydataprovider implements idataprovider() { > > > > iterator iterator(int first, int count) { > > > > return mydao.findcontacts(first, count).iterator(); > > > > } > > > > > > > > int size() { > > > > return mydao.countcontacts(); > > > > } > > > > > > > > model model(object o) { > > > > Contact contact=(Contact)o; > > > > return new > ContactDetachableModel(contact); > > > > //or return new Model(contact); > > > > } > > > > } > > > > > > > > and that gets you paging, sorting is like this > > > > > > > > mydataprovider extends sortabledataprovider { > > > > // ditto from above > > > > > > > > iterator iterator(int first, int last) { > > > > return mydao.findcontacts(first, last, > getsort().getproperty(), > > > > getsort().getcount(); > > > > } > > > > > > > > } > > > > > > > > > > > > if you have more specific questions i will be happy to help you > > > > > > > > -Igor > > > > > > > > > > > > > > > > > > > > > > > > On 7/18/06, Vincent Jenks <[EMAIL PROTECTED]> wrote: > > > > > > > > > Is there something smaller & simpler out there I could refer to for > > > > sorting? I've glanced at the DataView example a few times and once I > > > > start digging in it just seems unwieldly to me. I'm simply trying to > > > > sort a List of entities and the getContactsDB() stuff in the examples > > > > is a bit complicated to try and pick through. > > > > > > > > I gave paging a shot yesterday but quickly figured out it wouldn't be > > > > a snap to throw together like most wicket stuff I've done so > > > > far....I'm in a crunch or I'd spend more time banging my head on the > > > > table. > > > > > > > > I think if I just had a couple real-world examples I'd pick it up > > faster. > > > > > > > > How's that book coming along? :D > > > > > > > > Thanks! > > > > > > > > > > > ------------------------------------------------------------------------- > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > share > > your > > > > opinions on IT & business topics through brief surveys -- and earn > cash > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > _______________________________________________ > > > > Wicket-user mailing list > > > > Wicket-user@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > > Take Surveys. Earn Cash. Influence the Future of IT > > > > Join SourceForge.net's Techsay panel and you'll get the chance to > share > > your > > > > opinions on IT & business topics through brief surveys -- and earn > cash > > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > > > > > _______________________________________________ > > > > Wicket-user mailing list > > > > Wicket-user@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > Take Surveys. Earn Cash. Influence the Future of IT > > > Join SourceForge.net's Techsay panel and you'll get the chance to share > > your > > > opinions on IT & business topics through brief surveys -- and earn cash > > > > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > _______________________________________________ > > > Wicket-user mailing list > > > Wicket-user@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > > Join SourceForge.net's Techsay panel and you'll get the chance to share > your > > opinions on IT & business topics through brief surveys -- and earn cash > > > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > > > _______________________________________________ > > Wicket-user mailing list > > Wicket-user@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > > > > > > > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user