List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.sort ISortState setPropertySortOrder
void setPropertySortOrder(S property, SortOrder order);
From source file:com.wiquery.plugin.antilia.grid.DefaultHeaderCell.java
License:Apache License
/** * @param id/*from w ww .ja va2 s .c o m*/ * @param model */ public DefaultHeaderCell(String id, int column, Table<E> table, IModel<String> titleModel, final IColumn<E> columnModel) { super(id, columnModel); this.table = table; this.column = column; setRenderBodyOnly(true); add(new HiddenField<Integer>("colWidth", new Model<Integer>() { private static final long serialVersionUID = 1L; @Override public Integer getObject() { return DefaultHeaderCell.this.getColumnModel().getWidth(); } @Override public void setObject(Integer object) { if (object instanceof Integer) { DefaultHeaderCell.this.getColumnModel().setWidth(((Integer) object).intValue()); } } }, Integer.class)); DraggableTitle<E> draggableTarget = new DraggableTitle<E>("dragger", column) { private static final long serialVersionUID = 1L; @Override protected Table<E> getTable() { return DefaultHeaderCell.this.getTable(); } }; if (columnModel.isSortable()) { draggableTarget.add(new AjaxEventBehavior("ondblclick") { private static final long serialVersionUID = 1L; @Override protected void onEvent(AjaxRequestTarget target) { if (target != null) { IColumn<E> columnModel = DefaultHeaderCell.this.getColumnModel(); if (!columnModel.isSortable()) { return; } IPageableComponent<E> component = getTable(); IDataProvider<E> dataProvider = component.getDataProvider(); if (dataProvider instanceof ISortStateLocator) { ISortStateLocator locator = (ISortStateLocator) dataProvider; ISortState sortState = locator.getSortState(); if (sortState != null) { int sortOrder = sortState.getPropertySortOrder(columnModel.getSortProperty()); if (sortOrder == ISortState.DESCENDING) sortState.setPropertySortOrder(columnModel.getSortProperty(), ISortState.ASCENDING); else if (sortOrder == ISortState.ASCENDING) sortState.setPropertySortOrder(columnModel.getSortProperty(), ISortState.DESCENDING); else sortState.setPropertySortOrder(columnModel.getSortProperty(), ISortState.ASCENDING); } component.reset(); } target.addComponent((Component) component); } } }); } draggableTarget.setOutputMarkupId(true); add(draggableTarget); Label title = new Label("title", titleModel); title.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { IColumn<E> columnModel = DefaultHeaderCell.this.getColumnModel(); if (!columnModel.isSortable()) { return "headerTitle"; } IPageableComponent<E> component = getTable(); IDataProvider<E> dataProvider = component.getDataProvider(); if (dataProvider instanceof ISortStateLocator) { ISortStateLocator locator = (ISortStateLocator) dataProvider; ISortState sortState = locator.getSortState(); if (sortState != null) { int sortOrder = sortState.getPropertySortOrder(columnModel.getSortProperty()); if (sortOrder == ISortState.DESCENDING) return "headerTitleDesc"; else if (sortOrder == ISortState.ASCENDING) return "headerTitleAsc"; } } return "headerTitle"; } })); draggableTarget.add(title); WebMarkupContainer dragTd = new WebMarkupContainer("dragTd"); dragTd.add(new AttributeModifier("id", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (!DefaultHeaderCell.this.getTable().isColumnsResizable()) return DefaultHeaderCell.this.getTable().getMarkupId() + "_cND_" + DefaultHeaderCell.this.getColumn(); if (columnModel.isResizable()) return DefaultHeaderCell.this.getTable().getMarkupId() + "_c_" + DefaultHeaderCell.this.getColumn(); // this naming does the trick of making the column non re-sizable return DefaultHeaderCell.this.getTable().getMarkupId() + "_cND_" + DefaultHeaderCell.this.getColumn(); } })); dragTd.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (!DefaultHeaderCell.this.getTable().isColumnsResizable()) return "noResCol"; if (columnModel.isResizable()) return "resCol"; return "noResCol"; } })); add(dragTd); WebMarkupContainer sortInfo = new WebMarkupContainer("sortInfo"); sortInfo.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { IColumn<E> columnModel = DefaultHeaderCell.this.getColumnModel(); if (!columnModel.isSortable()) { return ""; } IPageableComponent<E> component = getTable(); IDataProvider<E> dataProvider = component.getDataProvider(); if (dataProvider instanceof ISortStateLocator) { ISortStateLocator locator = (ISortStateLocator) dataProvider; ISortState sortState = locator.getSortState(); if (sortState != null) { int sortOrder = sortState.getPropertySortOrder(columnModel.getSortProperty()); if (sortOrder == ISortState.DESCENDING) return "ui-icon ui-icon-triangle-1-s"; else if (sortOrder == ISortState.ASCENDING) return "ui-icon ui-icon-triangle-1-n"; } } return ""; } })); draggableTarget.add(sortInfo); }
From source file:org.hippoecm.frontend.plugins.standards.list.AbstractListingPlugin.java
License:Apache License
@Override @SuppressWarnings("unchecked") public void onModelChanged() { if (dataTable == null) { return;/*from w w w.java 2s. c om*/ } final ISortState<String> sortState = provider.getSortState(); clean(); final TableDefinition<Node> tableDefinition = getTableDefinition(); final ISortableDataProvider<Node, String> dataProvider = getDataProvider(); ISortState<String> newSortState = dataProvider.getSortState(); for (ListColumn<Node> column : tableDefinition.getColumns()) { String sortProperty = column.getSortProperty(); SortOrder propertySortOrder = sortState.getPropertySortOrder(sortProperty); if (propertySortOrder != newSortState.getPropertySortOrder(sortProperty)) { newSortState.setPropertySortOrder(sortProperty, propertySortOrder); } } dataTable = getListDataTable("table", tableDefinition, dataProvider, this, isOrderable(), pagingDefinition); replace(dataTable); dataTable.init(getPluginContext()); IPluginConfig config = getPluginConfig(); if (config.getString("model.document") != null) { IModelReference<IModel> documentService = getPluginContext() .getService(config.getString("model.document"), IModelReference.class); if (documentService != null) { dataTable.setDefaultModel(documentService.getModel()); } } redraw(); }