@Override public void resetSortOrder() { getSortableDatasource().resetSortOrder(); } }
@SuppressWarnings("unchecked") @Override public void setDatasource(CollectionDatasource datasource) { if (datasource == null) { setItems(null); } else { TableItems<E> tableItems; if (datasource instanceof CollectionDatasource.Sortable) { tableItems = new SortableDatasourceTableItems((CollectionDatasource.Sortable) datasource); } else { tableItems = new DatasourceTableItems(datasource); } setItems(tableItems); } }
@Override public Object lastItemId() { return getSortableDatasource().lastItemId(); }
@Override public Object firstItemId() { return getSortableDatasource().firstItemId(); }
@Override public boolean isFirstId(Object itemId) { return getSortableDatasource().isFirstId((K) itemId); }
@Override public boolean isLastId(Object itemId) { return getSortableDatasource().isLastId((K) itemId); }
@Override public Object nextItemId(Object itemId) { return getSortableDatasource().nextItemId((K) itemId); }
@Override public Object prevItemId(Object itemId) { return getSortableDatasource().prevItemId((K) itemId); }
@Override public void sort(Object[] propertyIds, boolean[] ascendingFlags) { // table support sort only by one property Preconditions.checkArgument(propertyIds.length == 1); MetaPropertyPath propertyPath = (MetaPropertyPath) propertyIds[0]; boolean ascending = ascendingFlags[0]; SortInfo<MetaPropertyPath> info = new SortInfo<>(); info.setPropertyPath(propertyPath); info.setOrder(ascending ? Order.ASC : Order.DESC); getSortableDatasource().sort(new SortInfo[] {info}); }