I cant speak for Frank's implementation, but when the IDataProvider is implemented correctly you only retrieve the window of data that will be rendered for this request and hold none of it in session. so the performance of the datatable component itself should be great.

-Igor


On 3/15/06, Mats Norén <[EMAIL PROTECTED]> wrote:
That would be great!

btw, how is the performance with large resultsets?



On 3/15/06, Frank Silbermann <[EMAIL PROTECTED]> wrote:
>
>
>
> The DataTable in Wicket Extensions 1.1 handles paging and sorting, but you
> must build a custom IDataProvider that accumulates the sorting instructions
> from the DataTable and provides sorted subsets of the data when requested by
> the DataTable (which handles the actual paging display).
>
>
>
> DataTable and supporting classes have been greatly refactored in Wicket
> Extensions 1.2 to give the user much more flexibility in the set of features
> desired.  The API changes will break Wicket 1.1 programs, so if you need to
> subclass anything to modify its behavior, I would suggest going to Wicket
> 1.2 now.  Otherwise, you can upgrade fairly easily at any time by replacing
> Wicket 1.1 DataTable with Wicket 1.2 DefaultDataTable.  Wicket 1.2 DataTable
> is more flexible but less complete; DefaultDataTable subclasses it to
> provide defaults which make it behave like the Wicket 1.1 DataTable.
>
>
>
> I have come up with my own subclass of DataTable and implementation of
> IDataProvider to display any arbitrary database java.sql.ResultSet.  The
> basic idea is that my IDataProvider implementation contains a List of rows,
> each row consisting of a List of Object.  Also in the implementation is an
> array of descriptors, one per column, each of which contains the column name
> and an indicator as to whether I want to be able to sort on that column.
> (The column name comes from the ResultSetMetadata; a method is provided to
> set the sortability flag.)  My implementation of the abstract method to
> deliver a sequence of rows will delegate to the List.sublist () command from
> the Java Collections API, and each time the DataTable delivers a sort
> criteria I apply the Collections.sort() method to my list of rows, passing
> it a Comparator that delegates to the Comparator of the Object at the
> relevant column index.  My implementation of IDataProvider can also look at
> my array of column descriptors and generate a list of IColumn objects
> (needed to construct the DataTable).
>
>
>
> It's actually a bit more complicated than that (and a work in progress),
> because I have complicated the above mechanisms to deal with the possibility
> of a summary row at the end, and when rows are requested, the query string
> will be recalculated based on form data -- and if it has changed since the
> last request then the data will be refreshed from the database and the
> current page set back to 1.
>
>
>
> The code is actually quite compact; when I'm finished I'll post it to the
> list if there is any interest.
>
>
>
>
>
>
> -----Original Message-----
>  From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]] On Behalf
> Of Igor Vaynberg
>  Sent: Tuesday, March 14, 2006 5:21 PM
>  To: [email protected]
>  Subject: Re: [Wicket-user] DataView (extentions)
>
>
>
> there is also a DataTable component which wraps DataView+paging+sorting.
>
>  -Igor
>
>
>
>
> On 3/14/06, Vincent Jenks < [EMAIL PROTECTED]> wrote:
>
> I'm using 1.1.1  Are there any plans to whittle down the amount of code it
> takes to implement paging & sorting?  Has it changed at all in 1.2?  I spent
> a lot of time w/ ASP.NET (which wicket feels quite similar to) and there's a
> DataGrid component that has properties to set paging & sorting w/o any extra
> work.  Something like that would be really convenient.
>
>
>
>
>
> On 3/14/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
>
> are you using 1.1 ? or 1.2 ?
>  there used to be a constructor that took model in 1.1 i think. the model
> object must be of type IDataProvider.
>
>
>
>
>  -Igor
>
>
>
>
> On 3/14/06, Vincent Jenks <[EMAIL PROTECTED]> wrote:
>
> Sorry, I didn't mention that the List is wrapped in a detached model....so
> it's an IModel, not List in the constructor.
>
>
>
>
>
> On 3/14/06, Igor Vaynberg < [EMAIL PROTECTED]> wrote:
>
> yes DataView works with IDataProvider instead of list. not sure why you
> didnt get a compile error since there is no (String,List) constructor.
>
>
>  there are examples of dataview and datatable under
> wicket-examples/repeaters
>
>  -Igor
>
>
>
>
>
> On 3/14/06, Vincent Jenks < [EMAIL PROTECTED]> wrote:
>
> So, I'm trying to use a DataView so I can page a collection of objects
>  from a session bean.
>
>  I create the List collection (loadingModel) and pass it into the DataView:
>
>  DataView productsDataView = new DataView("productsDataView", loadingModel)
>
>  ...but I'm getting an exception at runtime:
>
>  "Caused by: java.lang.ClassCastException: java.util.ArrayList"
>
>  I assume then, it's not like the ListView in that it will not take a
>  List directly?  Or, have I done something wrong?
>
>  Thanks!
>
>
>
>
>
>
>
>
>
>
>
>
>


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmdlnk&kid0944&bid$1720&dat1642
_______________________________________________
Wicket-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-user

Reply via email to