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

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

Introduction

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

Prototype

Iterator<? extends T> iterator(long first, long count);

Source Link

Document

Gets an iterator for the subset of total data

Usage

From source file:org.artifactory.common.wicket.component.table.columns.checkbox.SelectAllCheckboxColumn.java

License:Open Source License

@SuppressWarnings({ "unchecked" })
private void selectAll(SortableTable<T> table, AjaxRequestTarget target) {
    ISortableDataProvider<T> dataProvider = table.getSortableDataProvider();
    Iterator<T> iterator = (Iterator<T>) dataProvider.iterator(0, dataProvider.size());
    while (iterator.hasNext()) {
        T rowObject = iterator.next();/* ww  w. ja v  a  2 s  .  c  o  m*/
        if (canChangeItemSelectionState(rowObject)) {
            PropertyResolver.setValue(getExpression(), rowObject, isSelectAll(), null);
        }
    }
    onSelectAll(iterator, target);
    target.add(table);
}

From source file:org.cast.cwm.service.ResponseService.java

License:Open Source License

@Override
public void setResponseSortOrder(IModel<? extends Prompt> mPrompt, IModel<Response> mResponse, Integer index) {

    // DataProvider for Responses for this Prompt.
    // It is assumed that the target Response is included in this list.
    ISortableDataProvider<Response, String> dataProvider = getResponseProviderForPrompt(mPrompt);
    dataProvider.getSortState().setPropertySortOrder("sortOrder", SortOrder.ASCENDING);

    if (index == null)
        index = (int) dataProvider.size() - 1;

    if (index < 0)
        throw new IllegalArgumentException("Index cannot be negative.");

    if (index >= (dataProvider.size()))
        throw new IndexOutOfBoundsException(
                "Index {" + index + "} exceeds the number of Responses {" + dataProvider.size() + "}.");

    Iterator<? extends Response> iterator = dataProvider.iterator(0, dataProvider.size());

    int iteratorIndex = 0;
    boolean foundResponse = false;

    while (iterator.hasNext()) {
        Response r = iterator.next();

        // Reached the target response
        if (r.equals(mResponse.getObject()))
            foundResponse = true;//from  w ww. j  ava 2s .  co m

        // Overwrite sortOrder; making room for insertion if necessary
        if (iteratorIndex >= index && !foundResponse)
            r.setSortOrder(iteratorIndex + 1);
        else
            r.setSortOrder(iteratorIndex);

        iteratorIndex++;
    }

    if (!foundResponse)
        throw new IllegalStateException("Unknown behavior - Response was not found in iterator.");

    mResponse.getObject().setSortOrder(index);

    cwmService.flushChanges();

}

From source file:org.cast.isi.panel.ScorePanel.java

License:Open Source License

protected static List<IModel<Response>> getResponses(ISortableDataProvider<Response> responseProvider) {
    List<IModel<Response>> responses = new ArrayList<IModel<Response>>();
    for (Iterator<? extends Response> it = responseProvider.iterator(0, Integer.MAX_VALUE); it.hasNext();) {
        responses.add(new HibernateObjectModel<Response>(it.next()));
    }//from   ww  w. j ava 2  s .c  om
    return responses;
}

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);/*  ww w.j a v a 2 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  www  .  j a va2s  . 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;
                        }
                    };
                }
            };
        }
    };
}