As an alternative - to see a complete working example that works with
Hibernate - you could look at wicket-contrib-examples,
wicket.examples.cdapp and SearchPage/ SearchModel in particular.

In general, we consider using one of extension's repeater classes to
be a better way to go in general, but the approach in cdapp works, and
is low level enough to hopefully give you some ideas on how to
approach this yourself.

Eelco



On 7/19/06, Vincent Jenks <[EMAIL PROTECTED]> wrote:
> 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
>

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

Reply via email to