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

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

Introduction

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

Prototype

ISortState<T> getSortState();

Source Link

Usage

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;/*w w  w  . j a  v a 2s.  c  om*/

        // 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.PeriodResponseList.java

License:Open Source License

@Override
protected ISortableDataProvider<Response> getResponseProvider() {
    ISortableDataProvider<Response> provider = responseService
            .getResponseProviderForPromptAndPeriod(promptModel, mPeriod);
    // response list sort order is set by application configuration
    ISIApplication app = ISIApplication.get();
    provider.getSortState().setPropertySortOrder(app.getResponseSortField(), app.getResponseSortState());
    return provider;
}

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

License:Open Source License

protected ISortableDataProvider<Response> getResponseProvider() {
    ISortableDataProvider<Response> provider = responseService.getResponseProviderForPrompt(promptModel,
            mTargetUser);//from ww w  .  j a v  a 2 s.  c o  m
    // response list sort order is set by application configuration
    ISIApplication app = ISIApplication.get();
    provider.getSortState().setPropertySortOrder(app.getResponseSortField(), app.getResponseSortState());
    return provider;
}

From source file:org.hippoecm.frontend.plugins.standards.list.AbstractListingPlugin.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public void onModelChanged() {
    if (dataTable == null) {
        return;/* w  w  w. j ava2  s . c  o m*/
    }

    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.hippoecm.frontend.plugins.standards.list.datatable.ListDataTable.java

License:Apache License

public ListDataTable(String id, TableDefinition<T> tableDefinition,
        ISortableDataProvider<T, String> dataProvider, TableSelectionListener<T> selectionListener,
        final boolean triState, IPagingDefinition pagingDefinition) {
    super(id, tableDefinition.getColumns(), dataProvider, pagingDefinition.getPageSize());

    setOutputMarkupId(true);/*from   ww w.  j  a  v a  2 s  .c  o  m*/
    setVersioned(false);

    this.definition = tableDefinition;
    this.provider = dataProvider;
    this.selectionListener = selectionListener;

    if (tableDefinition.showColumnHeaders()) {
        addTopToolbar(new AjaxFallbackHeadersToolbar<String>(this, dataProvider) {
            @Override
            protected WebMarkupContainer newSortableHeader(String borderId, final String property,
                    final ISortStateLocator<String> locator) {
                if (tableDefinition.isSortable()) {
                    return new ListTableHeader<String>(borderId, property, locator) {
                        @Override
                        public void onClick(final AjaxRequestTarget target) {
                            target.add(ListDataTable.this);
                        }
                    };
                } else {
                    return new TableHeader(borderId, "sort-disabled");
                }
            }
        });

        if (!triState) {
            //Initial sorting on the "Name" column (if any)
            for (IColumn column : getColumns()) {
                ListColumn<?> listColumn = (ListColumn) column;
                if (listColumn.getRenderer() == null || listColumn.getRenderer() instanceof NameRenderer) {
                    dataProvider.getSortState().setPropertySortOrder(listColumn.getSortProperty(),
                            SortOrder.ASCENDING);
                    break;
                }
            }
        }

    }
    addBottomToolbar(new ListNavigationToolBar(this, pagingDefinition));

    setItemReuseStrategy(new ManagedReuseStrategy() {
        private static final long serialVersionUID = 1L;

        @Override
        public void destroyItem(Item item) {
            ListDataTable.this.destroyItem(item);
        }
    });

    setTableBodyCss("datatable-tbody");
}