List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table IColumn isSortable
default boolean isSortable()
From source file:net.unbewaff.wicketcrudr.components.StyledHeadersToolbar.java
License:Apache License
/** * Constructor//from www . jav a 2 s .c o m * * @param <T> * the column data type * @param table * data table this toolbar will be attached to * @param stateLocator * locator for the ISortState implementation used by sortable * headers */ public <T> StyledHeadersToolbar(final DataTable<T> table, final ISortStateLocator stateLocator) { super(table); RepeatingView headers = new RepeatingView("headers"); add(headers); final List<IColumn<T>> columns = table.getColumns(); for (final IColumn<T> column : columns) { AbstractItem item = new AbstractItem(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 IMultipleStyledColumn) { AttributeAppender classAppender = new AttributeAppender("class", ((IMultipleStyledColumn<?>) column).getCssClassForHeader()).setSeparator(" "); header.add(classAppender); } else if (column instanceof IStyledColumn) { AttributeAppender classAppender = new AttributeAppender("class", ((IStyledColumn<?>) column).getCssClass()).setSeparator(" "); header.add(classAppender); } item.add(header); item.setRenderBodyOnly(true); header.add(column.getHeader("label")); } }
From source file:org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.IsisAjaxHeadersToolbar.java
License:Apache License
/** * Constructor/*from w w w. j av a 2 s.co m*/ * * @param <T> * the column data type * @param table * data table this toolbar will be attached to * @param stateLocator * locator for the ISortState implementation used by sortable headers */ public <T> IsisAjaxHeadersToolbar(final DataTable<T, S> table, final ISortStateLocator<S> stateLocator) { super(table); RefreshingView<IColumn<T, S>> headers = new RefreshingView<IColumn<T, S>>("headers") { private static final long serialVersionUID = 1L; @Override protected Iterator<IModel<IColumn<T, S>>> getItemModels() { List<IModel<IColumn<T, S>>> columnsModels = new LinkedList<IModel<IColumn<T, S>>>(); for (IColumn<T, S> column : table.getColumns()) { columnsModels.add(Model.of(column)); } return columnsModels.iterator(); } @Override protected void populateItem(Item<IColumn<T, S>> item) { final IColumn<T, S> column = item.getModelObject(); WebMarkupContainer header; if (column.isSortable()) { header = newSortableHeader("header", column.getSortProperty(), stateLocator); if (column instanceof IStyledColumn) { CssAttributeBehavior cssAttributeBehavior = new CssAttributeBehavior() { private static final long serialVersionUID = 1L; @Override protected String getCssClass() { return ((IStyledColumn<?, S>) column).getCssClass(); } }; header.add(cssAttributeBehavior); } } else { header = new WebMarkupContainer("header"); } item.add(header); item.setRenderBodyOnly(true); Component label = column.getHeader("label"); Component sortIcon = newSortIcon("sortIcon", column, stateLocator); header.add(label, sortIcon); if (column instanceof ObjectAdapterTitleColumn) { header.add(new CssClassAppender("title-column")); } } }; add(headers); }
From source file:org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.IsisAjaxHeadersToolbar.java
License:Apache License
/** * Factory method for the sort icon//from ww w . j a v a 2s .c o m * * @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.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.MyHeadersToolbar.java
License:Apache License
/** * Constructor/*from www .j a va 2 s. co m*/ * * @param <T> * the column data type * @param table * data table this toolbar will be attached to * @param stateLocator * locator for the ISortState implementation used by sortable headers */ public <T> MyHeadersToolbar(final DataTable<T, S> table, final ISortStateLocator<S> stateLocator) { super(table); RefreshingView<IColumn<T, S>> headers = new RefreshingView<IColumn<T, S>>("headers") { private static final long serialVersionUID = 1L; @Override protected Iterator<IModel<IColumn<T, S>>> getItemModels() { List<IModel<IColumn<T, S>>> columnsModels = new LinkedList<IModel<IColumn<T, S>>>(); for (IColumn<T, S> column : table.getColumns()) { columnsModels.add(Model.of(column)); } return columnsModels.iterator(); } @Override protected void populateItem(Item<IColumn<T, S>> item) { final IColumn<T, S> column = item.getModelObject(); WebMarkupContainer header = null; if (column.isSortable()) { header = newSortableHeader("header", column.getSortProperty(), stateLocator); } else { header = new WebMarkupContainer("header"); } if (column instanceof IStyledColumn) { CssAttributeBehavior cssAttributeBehavior = new CssAttributeBehavior() { private static final long serialVersionUID = 1L; @Override protected String getCssClass() { return ((IStyledColumn<?, S>) column).getCssClass(); } }; header.add(cssAttributeBehavior); } item.add(header); item.setRenderBodyOnly(true); Component label; //Component checkBox; //if(column instanceof ObjectAdapterToggleboxColumn) { label = new Label("label"); // checkBox = column.getHeader("checkbox"); // label.setVisible(false); //} else { label = column.getHeader("label"); // checkBox = new CheckBox("checkbox"); // checkBox.setVisible(false); // } header.add(label); //header.add(checkBox); } }; add(headers); }
From source file:org.artifactory.common.wicket.component.table.groupable.header.AjaxGroupableHeadersToolbar.java
License:Open Source License
public AjaxGroupableHeadersToolbar(final DataTable table, final ISortStateLocator stateLocator) { super(table); // alas, copied from HeadersToolbar RepeatingView headers = new RepeatingView("headers"); add(headers);/*from ww w . j a v a 2 s .c o m*/ final List<IColumn> columns = table.getColumns(); int i = 0; for (final IColumn column : columns) { WebMarkupContainer item = new WebMarkupContainer(headers.newChildId()); item.setRenderBodyOnly(true); headers.add(item); WebMarkupContainer header; if (column.isSortable()) { if (column instanceof IGroupableColumn) { final IGroupableColumn groupableColumn = (IGroupableColumn) column; header = newSortableHeader("header", groupableColumn.getSortProperty(), groupableColumn.getGroupProperty(), stateLocator); } else { header = newSortableHeader("header", column.getSortProperty(), column.getSortProperty(), stateLocator); } } else { header = new UnsortableBorder("header"); } // add IStyledColumn style if (column instanceof IStyledColumn) { header.add(new CssClass(new AbstractReadOnlyModel() { @Override public Object getObject() { return ((IStyledColumn) column).getCssClass(); } })); } // add first/last style if (i == 0) { header.add(new CssClass("first-cell")); } else if (i == columns.size() - 1) { header.add(new CssClass("last-cell")); } item.add(header); // add label header.add(column.getHeader("label")); // add groupByLink Component groupByLink; WebMarkupContainer groupByText = new WebMarkupContainer("groupByText"); if (column instanceof IGroupableColumn) { IGroupableColumn groupableColumn = (IGroupableColumn) column; String property = groupableColumn.getGroupProperty(); groupByLink = newGroupByLink("groupByLink", stateLocator, property); header.add(new CssClass(new HeaderCssModel(stateLocator, property))); } else { groupByLink = new WebMarkupContainer("groupByLink").setVisible(false); groupByText.setVisible(false); } header.add(groupByLink); header.add(groupByText); i++; } }
From source file:org.sakaiproject.sitestats.tool.wicket.components.paging.infinite.InfinitePagingDataTableHeadersToolbar.java
License:Educational Community License
public <T> InfinitePagingDataTableHeadersToolbar(final InfinitePagingDataTable<T, S> table, final ISortStateLocator<S> stateLocator) { super(null, table); RefreshingView<IColumn<T, S>> headers = new RefreshingView<IColumn<T, S>>("headers") { private static final long serialVersionUID = 1L; @Override/*from w w w . j a v a 2s . c o m*/ protected Iterator<IModel<IColumn<T, S>>> getItemModels() { List<IModel<IColumn<T, S>>> columnsModels = new LinkedList<>(); for (IColumn<T, S> column : table.getColumns()) { columnsModels.add(Model.of(column)); } return columnsModels.iterator(); } @Override protected void populateItem(Item<IColumn<T, S>> item) { final IColumn<T, S> column = item.getModelObject(); WebMarkupContainer header; if (column.isSortable()) { header = newSortableHeader("header", column.getSortProperty(), stateLocator); } else { header = new WebMarkupContainer("header"); } if (column instanceof IStyledColumn) { InfinitePagingDataTable.CssAttributeBehavior cssAttributeBehavior = new InfinitePagingDataTable.CssAttributeBehavior() { private static final long serialVersionUID = 1L; @Override protected String getCssClass() { return ((IStyledColumn<?, S>) column).getCssClass(); } }; header.add(cssAttributeBehavior); } item.add(header); item.setRenderBodyOnly(true); header.add(column.getHeader("label")); } }; add(headers); WebMarkupContainer sortToggle = new WebMarkupContainer("sortToggle"); sortToggle.setVisible(table.getColumns().stream().anyMatch(IColumn::isSortable)); add(sortToggle); table.setOutputMarkupId(true); }
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 a 2 s .co m*/ 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")); } }
From source file:table.headercolumndatatable.TwinHeadersToolbar.java
License:Apache License
private void populateHeaders(ISortStateLocator stateLocator, RepeatingView headers, String headerId, String labelId, IColumn<?>[] tableColumns) { for (final IColumn column : tableColumns) { WebMarkupContainer item = new WebMarkupContainer(headers.newChildId()); headers.add(item);/*from w w w . j a va 2 s .c o m*/ WebMarkupContainer header; if (column.isSortable()) { header = newSortableHeader(headerId, column.getSortProperty(), stateLocator); } else { header = new WebMarkupContainer(headerId); } if (column instanceof IStyledColumn) { header.add(new CssAttributeBehavior() { private static final long serialVersionUID = 1L; @Override protected String getCssClass() { return ((IStyledColumn<?>) column).getCssClass(); } }); } item.add(header); item.setRenderBodyOnly(true); header.add(column.getHeader(labelId)); } }
From source file:wickettree.table.HeadersToolbar.java
License:Apache License
/** * Constructor//from www. j a v a2 s.c o m * * @param tree * tree this toolbar will be attached to */ public HeadersToolbar(final TableTree<?> tree, final ISortStateLocator stateLocator) { super(tree); RepeatingView headers = new RepeatingView("headers"); add(headers); for (final IColumn<?> column : tree.getColumns()) { 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 IStyledColumn<?>) { header.add( new AttributeAppender("class", Model.of(((IStyledColumn<?>) column).getCssClass()), " ")); } item.add(header); item.setRenderBodyOnly(true); header.add(column.getHeader("label")); } }