Example usage for org.apache.wicket.extensions.markup.html.repeater.data.table ISortableDataProvider model

List of usage examples for org.apache.wicket.extensions.markup.html.repeater.data.table ISortableDataProvider model

Introduction

In this page you can find the example usage for org.apache.wicket.extensions.markup.html.repeater.data.table ISortableDataProvider model.

Prototype

IModel<T> model(T object);

Source Link

Document

Callback used by the consumer of this data provider to wrap objects retrieved from #iterator(long,long) with a model (usually a detachable one).

Usage

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;
                        }
                    };
                }
            };
        }
    };
}