List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table ISortableDataProvider model
IModel<T> model(T object);
From source file:org.hippoecm.frontend.editor.workflow.dialog.SelectableDocumentsView.java
License:Apache License
public SelectableDocumentsView(final String id, final IModel<String> message, final ISortableDataProvider<Node, String> provider, final IEditorManager editorManager) { super(id);/*from w w w. ja v a2 s . c om*/ this.provider = provider; this.editorMgr = editorManager; setOutputMarkupId(true); add(new Label("message", message)); dataTable = new ListDataTable("datatable", getTableDefinition(), provider, new TableSelectionListener() { public void selectionChanged(IModel model) { } }, true, this); dataTable.add(CssClass.append(DocumentListColumn.DOCUMENT_LIST_CSS_CLASS)); dataTable.add(CssClass.append(new AbstractReadOnlyModel<String>() { @Override public String getObject() { return provider.size() > getPageSize() ? "hippo-paging" : ""; } })); add(dataTable); add(actionContainer = new WebMarkupContainer("actions")); add(CssClass.append("hippo-selectable-documents")); add(CssClass.append(new LoadableDetachableModel<String>() { @Override protected String load() { if (SelectableDocumentsView.this.provider.size() == 0) { return "hippo-empty"; } return ""; } })); AjaxLink selectAll = new AjaxLink("select-all") { @Override public void onClick(AjaxRequestTarget target) { selectedDocuments.clear(); ISortableDataProvider<Node, String> provider = SelectableDocumentsView.this.provider; Iterator<? extends Node> iter = provider.iterator(0, provider.size()); while (iter.hasNext()) { selectedDocuments.add(provider.model(iter.next())); } target.add(SelectableDocumentsView.this); } }; actionContainer.add(selectAll); AjaxLink selectNone = new AjaxLink("select-none") { @Override public void onClick(AjaxRequestTarget target) { selectedDocuments.clear(); target.add(SelectableDocumentsView.this); } }; actionContainer.add(selectNone); openButton = new AjaxLink("open") { @Override public void onClick(AjaxRequestTarget target) { openEditor(); } }; if (editorMgr == null) { openButton.setEnabled(false); } add(openButton); }
From source file:org.opensingular.form.wicket.mapper.masterdetail.MasterDetailBSDataTableBuilder.java
License:Apache License
@Override protected BSDataTable<T, S> newDatatable(String id, List<? extends IColumn<T, S>> columns, ISortableDataProvider<T, S> dataProvider) { return new BSDataTable<T, S>(id, columns, dataProvider) { @Override//from ww w. j av a2 s . c o m protected AbstractToolbar newNoRecordsToolbar() { if (isShowNoRecordsToolbar()) { return new MasterDetailNoRecordsToolbar(this); } else { return null; } } @Override protected AbstractToolbar newPaginationToolbar() { return new BSPaginationToolbar(this) { @Override protected BSPaginationPanel newPagination(String id, DataTable<?, ?> table) { return new BSPaginationPanel(id, table) { @Override protected NumberedPageLink newNumberedPageLink(ListItem<Long> item) { NumberedPageLink link = super.newNumberedPageLink(item); item.add($b.classAppender("has-error", $m.get(() -> (!SValidationFeedbackHandler .collectNestedErrors(new FeedbackFence(item)).isEmpty())))); SValidationFeedbackHandler.bindTo(new FeedbackFence(item)).addListener( (handler, target, container, baseInstances, oldErrors, newErrors) -> { if (target != null) target.add(item); }).setInstanceModels($m.get(() -> { final IDataProvider<SInstance> dataProvider = (IDataProvider<SInstance>) table .getDataProvider(); final long pageIndex = item.getModelObject(); final long first = pageIndex * table.getItemsPerPage(); final long count = Math.min(table.getItemsPerPage(), dataProvider.size() - first); final Iterator<? extends SInstance> it = dataProvider.iterator(first, count); final List<IModel<? extends SInstance>> list = Lists.newArrayList(); while (it.hasNext()) list.add(dataProvider.model(it.next())); return list; })); return link; } }; } }; } }; }