The purpose of size() is to give the DataView an idea of how many
pages there will be, so this really won't work. You should fetch size
in a separate query as the number of orders total over all pages, and
cache that.

best,
jim

On 5/29/07, V. Jenks <[EMAIL PROTECTED]> wrote:
>
> I'm trying to use a provider class for a DataView so I can do paging/sorting,
> etc.  It looks like this:
>
> ************************************************
> public class OrderProvider implements IDataProvider
> {
>         private transient List<Order> orders;
>
>         public OrderProvider()
>         {
>         }
>
>         public Iterator iterator(int first, int count)
>         {
>                 this.orders = 
> WicketHelper.<List<Order>>getDetachedModelObject(
>                                 OrderProxy.getAll(first, first + count));
>
>                 return this.orders.iterator();
>         }
>
>         public IModel model(Object model)
>         {
>                 return WicketHelper.getDetachedModel(model);
>         }
>
>         public int size()
>         {
>                 return this.orders.size();
>         }
> }
> ************************************************
>
> I thought this would work but it looks like size() is called first, since I
> get a NPE:
>
> ************************************************
> Caused by: java.lang.NullPointerException
>         at com.myapp.provider.OrderProvider.size(OrderProvider.java:36)
> ************************************************
>
> It works if size() makes a call to the database to get a count of
> records...but I'm trying to use a global field to prevent that data call.
>
> Any suggestions?
> --
> View this message in context: 
> http://www.nabble.com/Chicken-and-egg-w--Data-Provider-tf3834369.html#a10855464
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Wicket-user mailing list
> Wicket-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wicket-user
>

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to