List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.sort ISortState getPropertySortOrder
SortOrder getPropertySortOrder(S property);
From source file:com.wiquery.plugin.antilia.grid.DefaultHeaderCell.java
License:Apache License
/** * @param id//from w ww .j a v a2 s . c om * @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.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.IsisAjaxFallbackOrderByBorder.java
License:Apache License
@Override protected void onAjaxClick(final AjaxRequestTarget target) { target.add(dataTable);/*from w w w.j a va2 s . c om*/ final UiHintContainer uiHintContainer = getUiHintContainer(); if (uiHintContainer == null) { return; } final ISortState<T> state = stateLocator.getSortState(); final SortOrder order = state.getPropertySortOrder(sortProperty); dataTable.setSortOrderHintAndBroadcast(order, sortProperty.toString(), target); dataTable.setPageNumberHintAndBroadcast(target); }
From source file:org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.IsisAjaxHeadersToolbar.java
License:Apache License
/** * Factory method for the sort icon// w w w . j a v a 2 s . c om * * @param id * the component id * @param column * the column for which a sort icon is needed * @param stateLocator * locator for the ISortState implementation used by sortable headers * @param <T> * The model object type of the data table * @return A component that should be used as a sort icon */ protected <T> Component newSortIcon(String id, final IColumn<T, S> column, final ISortStateLocator<S> stateLocator) { return new WebComponent(id) { @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); if (column.isSortable()) { ISortState<S> sortState = stateLocator.getSortState(); S sortProperty = column.getSortProperty(); SortOrder sortOrder = sortProperty == null ? SortOrder.NONE : sortState.getPropertySortOrder(sortProperty); if (sortOrder == SortOrder.ASCENDING) { Attributes.addClass(tag, CLASS_SORT_UP); } else if (sortOrder == SortOrder.DESCENDING) { Attributes.addClass(tag, CLASS_SORT_DOWN); } else { Attributes.addClass(tag, CLASS_SORT_NONE); } } } }; }
From source file:org.artifactory.common.wicket.component.table.groupable.header.AjaxGroupableHeadersToolbar.java
License:Open Source License
private void switchGroupState(IGroupStateLocator groupStateLocator, String groupProperty) { SortParam groupParam = groupStateLocator.getGroupParam(); if (groupParam == null || !groupProperty.equals(groupParam.getProperty())) { groupParam = new SortParam(groupProperty, true); } else {//from w ww .j ava2 s . c om groupParam = null; } groupStateLocator.setGroupParam(groupParam); // reset sort state ISortState sortState = groupStateLocator.getSortState(); if (!SortOrder.NONE.equals(sortState.getPropertySortOrder(groupProperty))) { if (sortState instanceof SingleSortState) { ((SingleSortState) sortState).setSort(null); } } }
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. ja va 2 s . 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(); }
From source file:org.sakaiproject.wicket.markup.html.repeater.data.table.BasicHeadersToolbar.java
License:Educational Community License
public BasicHeadersToolbar(DataTable table, ISortStateLocator stateLocator) { super(table); setRenderBodyOnly(true);//from w ww . ja v a2 s .com RepeatingView headers = new RepeatingView("headers"); add(headers); final IColumn[] columns = table.getColumns(); for (int i = 0; i < columns.length; i++) { final IColumn column = columns[i]; WebMarkupContainer item = new WebMarkupContainer(headers.newChildId()); headers.add(item); WebMarkupContainer header = null; if (column.isSortable()) { header = newSortableHeader("header", column.getSortProperty(), stateLocator); } else { header = new WebMarkupContainer("header"); } if (column instanceof PropertyColumn) { String expression = ((PropertyColumn) column).getPropertyExpression(); if (expression != null) header.setMarkupId(expression); } if (column instanceof IStyledColumn) { header.add(new CssAttributeBehavior() { private static final long serialVersionUID = 1L; protected String getCssClass() { return ((IStyledColumn) column).getCssClass(); } }); } final ISortState state = stateLocator.getSortState(); Image indicatorImage = new Image("indicator") { private static final long serialVersionUID = 1L; protected ResourceReference getImageResourceReference() { int sortOrder = ISortState.NONE; if (column.isSortable() && column.getSortProperty() != null) sortOrder = state.getPropertySortOrder(column.getSortProperty()); if (sortOrder == ISortState.DESCENDING) return upArrowReference; else if (sortOrder == ISortState.ASCENDING) return downArrowReference; return noArrowReference; } }; header.add(indicatorImage); indicatorImage.setVisible(column.isSortable() && column.getSortProperty() != null); item.add(header); item.setRenderBodyOnly(true); header.add(column.getHeader("label")); } }