wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sven Meier <s...@meiers.net>
Subject Re: a sortable version of of ListDataProvider...
Date Mon, 08 Jun 2015 08:07:38 GMT
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?

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: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message