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
>

Reply via email to