Hi, Yes... Being in different modules is a problem. I think Ernesto's class could be simpler by extending from ListDataProvider and implementing ISortableDataProvider.
One approach would be to copy the ISort** interfaces from -extensions to -core in 7.x. But I'm not sure it is worth the trouble. If we decide to go that route then I'd suggest to copy the interfaces to -core and keep the originals in -extensions as empty interfaces extending the ones from -core, and mark as deprecated. This way the apps coming from 6.x should do nothing to migrate. Martin Grigorov Wicket Training and Consulting https://twitter.com/mtgrigorov On Mon, Jun 8, 2015 at 12:47 PM, Ernesto Reinaldo Barreiro < [email protected]> wrote: > Ok. > > On Mon, Jun 8, 2015 at 10:58 AM, Sven Meier <[email protected]> wrote: > > > Mh, ListDataProvider is in wicket-core, but (I)SortableDataProvider is in > > wicket-extensions. > > So my suggestion doesn't work :/. > > > > Please open a Jira issue, we'll see what the other devs think about an > > additional convenience class. > > > > Regards > > Sven > > > > > > On 08.06.2015 10:36, Ernesto Reinaldo Barreiro wrote: > > > >> Sven, > >> > >> On Mon, Jun 8, 2015 at 10:07 AM, Sven Meier <[email protected]> wrote: > >> > >> Hi, > >>> > >>> my only objection would be that this SortableListDataProvider doesn't > >>> actually sort anything. > >>> > >>> AFAIK this does no harm though, so why not let the current > >>> ListDataProvider implement ISortableDataProvider? > >>> > >>> That's also posible. All I want is not having to roll out my own over > an > >> over... :-) > >> > >> > >> Have fun > >>> Sven > >>> > >>> > >>> > >>> On 08.06.2015 08:50, Ernesto Reinaldo Barreiro wrote: > >>> > >>> On many project I just need to show a list of beans on an AJAX default > >>>> datatable... There is already a ListDataProvider... but this component > >>>> require a Sortable version... and I always end up rolling out > something > >>>> like the class bellow. Would it make sense to include a similar class > on > >>>> wicket code base? > >>>> > >>>> /** > >>>> * Sortable version of ListDataProvider. > >>>> > >>>> */ > >>>> > >>>> public class SortableListDataProvider<T extends Serializable, S> > >>>> extends SortableDataProvider<T, S> { > >>>> > >>>> private static final long serialVersionUID = 1L; > >>>> > >>>> /** reference to the list used as dataprovider for the dataview > */ > >>>> private final List<T> list; > >>>> > >>>> /** > >>>> * Constructs an empty provider. Useful for lazy loading > together > >>>> with {@linkplain #getData()} > >>>> */ > >>>> public SortableListDataProvider() > >>>> { > >>>> this(Collections.<T> emptyList()); > >>>> } > >>>> > >>>> /** > >>>> * > >>>> * @param list > >>>> * the list used as dataprovider for the dataview > >>>> */ > >>>> public SortableListDataProvider(List<T> list) > >>>> { > >>>> if (list == null) > >>>> { > >>>> throw new IllegalArgumentException("argument [list] > cannot > >>>> be null"); > >>>> } > >>>> > >>>> this.list = list; > >>>> } > >>>> > >>>> /** > >>>> * Subclass to lazy load the list > >>>> * > >>>> * @return The list > >>>> */ > >>>> protected List<T> getData() > >>>> { > >>>> return list; > >>>> } > >>>> > >>>> @Override > >>>> public Iterator<? extends T> iterator(final long first, final > long > >>>> count) > >>>> { > >>>> List<T> list = getData(); > >>>> > >>>> long toIndex = first + count; > >>>> if (toIndex > list.size()) > >>>> { > >>>> toIndex = list.size(); > >>>> } > >>>> return list.subList((int)first, > (int)toIndex).listIterator(); > >>>> } > >>>> > >>>> /** > >>>> * @see IDataProvider#size() > >>>> */ > >>>> @Override > >>>> public long size() > >>>> { > >>>> return getData().size(); > >>>> } > >>>> > >>>> /** > >>>> * @see IDataProvider#model(Object) > >>>> */ > >>>> @Override > >>>> public IModel<T> model(T object) > >>>> { > >>>> return new Model<T>(object); > >>>> } > >>>> > >>>> /** > >>>> * @see org.apache.wicket.model.IDetachable#detach() > >>>> */ > >>>> @Override > >>>> public void detach() > >>>> { > >>>> } > >>>> } > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [email protected] > >>> For additional commands, e-mail: [email protected] > >>> > >>> > >>> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > > -- > Regards - Ernesto Reinaldo Barreiro >
