Example usage for org.apache.wicket.extensions.ajax.markup.html.repeater.data.table AjaxNavigationToolbar AjaxNavigationToolbar

List of usage examples for org.apache.wicket.extensions.ajax.markup.html.repeater.data.table AjaxNavigationToolbar AjaxNavigationToolbar

Introduction

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

Prototype

public AjaxNavigationToolbar(final DataTable<?, ?> table) 

Source Link

Document

Constructor.

Usage

From source file:com.doculibre.constellio.wicket.panels.admin.crud.DataPanel.java

License:Open Source License

public DataPanel(String id, int rowsPerPage) {
    super(id);/*w w w  . j  av a2  s.  c o  m*/
    List<IColumn> columns = getColumns();

    SortableListModel<T> sortableListModel = getSortableListModel();

    SortableDataProvider dataProvider = new SortableListDataProvider(sortableListModel);
    dataTable = new DataTable("dataTable", columns.toArray(new IColumn[0]), dataProvider, rowsPerPage);
    add(dataTable);
    dataTable.setOutputMarkupId(true);
    dataTable.setVersioned(false);
    dataTable.addTopToolbar(new AjaxFallbackHeadersToolbar(dataTable, dataProvider) {
        @Override
        protected WebMarkupContainer newSortableHeader(String borderId, String property,
                ISortStateLocator locator) {
            WebMarkupContainer sortableHeader = super.newSortableHeader(borderId, property, locator);
            sortableHeader.add(new SimpleAttributeModifier("scope", "col"));
            return sortableHeader;
        }
    });
    dataTable.addBottomToolbar(new AjaxNavigationToolbar(dataTable) {
        @Override
        protected PagingNavigator newPagingNavigator(String navigatorId, DataTable table) {
            return new AutoHidePagingNavigator(navigatorId, table);
        }
    });
    dataTable.addBottomToolbar(new NoRecordsToolbar(dataTable));
    dataTable.setItemReuseStrategy(new ReuseIfModelsEqualStrategy());
}

From source file:com.kenai.wicketgae.web.panels.person.list.ListPersonPanel.java

License:Apache License

public ListPersonPanel(final String id, final MainPage mainPage) {
    super(id);//  w w  w . j a v  a2 s  .  c o m
    this.mainPage = mainPage;

    final PersonDataProvider dataProvider = new PersonDataProvider();
    final IColumn<Person>[] columns = createColumns();

    final DataTable<Person> table = new PersonDataTable("table", columns, dataProvider, ROWS_PER_PAGE);
    table.setOutputMarkupId(true);
    add(table);

    table.addTopToolbar(new HeadersToolbar(table, null));
    table.addBottomToolbar(new AjaxNavigationToolbar(table));
}

From source file:com.swordlord.gozer.components.wicket.crosstab.CrossTabDataTable.java

License:Open Source License

private void initialise(ISortableDataProvider<DataRowBase, String> dataProvider) {
    setOutputMarkupId(true);/*from  w w  w .ja v  a  2s  .c o m*/
    setVersioned(false);

    addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
    addBottomToolbar(new AjaxNavigationToolbar(this));
    addBottomToolbar(new NoRecordsToolbar(this));
}

From source file:com.swordlord.gozer.components.wicket.datatable.GozerDataTable.java

License:Open Source License

/**
 * Default constructor/*from   w  ww  .  ja  v a 2 s .co  m*/
 * 
 * @param id
 *            The wicket component id
 * @param columns
 *            The tables column
 * @param dataProvider
 *            The tables data provider
 * @param rowsPerPage
 *            The number of rows to show per page
 * @param model
 *            Model wrapping the {@link com.swordlord.gozer.ui.gozerframe.GWContext} to use
 * @param list
 *            The gozer definition of the table
 * @param form
 *            The form to which this table belongs
 * @param parent
 *            The parent panel
 */
public GozerDataTable(String id, List<IColumn<DataRowBase, String>> columns,
        GozerSortableFilterableDataProvider dataProvider, int rowsPerPage, IModel<?> model, GList list,
        Form<?> form, GWPanel parent) {
    super(id, columns, dataProvider, rowsPerPage);
    _markCurrentRow = list.getShowCurrent();
    _dataBinding = list.getDataBinding();
    _gwParent = parent;

    setOutputMarkupId(true);
    setVersioned(false);

    addTopToolbar(new GWListActionToolbar(model, this, list, form));
    addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
    // never show the filter on a modal window (it does not work properly
    // there ...)
    // on normal window we show the filter only if desired
    if (list.getShowFilter() && !parent.getGWContext().hasModalWindow()) {
        addTopToolbar(new GWListFilterToolbar(this, dataProvider));
    }
    addBottomToolbar(new AjaxNavigationToolbar(this));
    addBottomToolbar(new NoRecordsToolbar(this));
}

From source file:dk.teachus.frontend.components.list.ListPanel.java

License:Apache License

private AjaxNavigationToolbar createNavigationToolbar(DataTable<T> dataTable) {
    return new AjaxNavigationToolbar(dataTable) {
        private static final long serialVersionUID = 1L;

        @Override//w  w  w.jav  a2s  .c  o  m
        protected WebComponent newNavigatorLabel(String navigatorId, final DataTable<?> table) {
            Label label = new Label(navigatorId, new AbstractReadOnlyModel<String>() {
                private static final long serialVersionUID = 1L;

                @Override
                public String getObject() {
                    int of = table.getRowCount();
                    int from = table.getCurrentPage() * table.getItemsPerPage();
                    int to = Math.min(of, from + table.getItemsPerPage());

                    from++;

                    if (of == 0) {
                        from = 0;
                        to = 0;
                    }

                    String label = TeachUsSession.get().getString("ListPanel.navigatorLabel");
                    label = label.replace("${from}", "" + from);
                    label = label.replace("${to}", "" + to);
                    label = label.replace("${of}", "" + of);

                    return label;
                }
            });
            label.setRenderBodyOnly(true);
            return label;
        }

        @Override
        protected PagingNavigator newPagingNavigator(String navigatorId, DataTable<?> table) {
            return new AjaxPagingNavigator(navigatorId, table) {
                private static final long serialVersionUID = 1L;

                @Override
                protected void onAjaxEvent(final AjaxRequestTarget target) {
                    target.add(getTable());
                }

                @Override
                protected Link<?> newPagingNavigationLink(String id, IPageable pageable, final int pageNumber) {
                    final Link<?> pagingNavigationLink = super.newPagingNavigationLink(id, pageable,
                            pageNumber);
                    pagingNavigationLink.setBody(Model.of(""));
                    pagingNavigationLink
                            .add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
                                private static final long serialVersionUID = 1L;

                                @Override
                                public String getObject() {
                                    String cls = "btn btn-mini";
                                    if (pageNumber == 0) {
                                        cls += " icon-fast-backward";
                                    } else {
                                        cls += " icon-fast-forward";
                                    }
                                    if (false == pagingNavigationLink.isEnabled()) {
                                        cls += " disabled";
                                    }
                                    return cls;
                                }
                            }));
                    return pagingNavigationLink;
                }

                @Override
                protected Link<?> newPagingNavigationIncrementLink(String id, IPageable pageable,
                        final int increment) {
                    final Link<?> pagingNavigationIncrementLink = super.newPagingNavigationIncrementLink(id,
                            pageable, increment);
                    pagingNavigationIncrementLink.setBody(Model.of(""));
                    pagingNavigationIncrementLink
                            .add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
                                private static final long serialVersionUID = 1L;

                                @Override
                                public String getObject() {
                                    String cls = "btn btn-mini";
                                    if (increment < 0) {
                                        cls += " icon-backward";
                                    } else {
                                        cls += " icon-forward";
                                    }
                                    if (false == pagingNavigationIncrementLink.isEnabled()) {
                                        cls += " disabled";
                                    }
                                    return cls;
                                }
                            }));
                    return pagingNavigationIncrementLink;
                }

                @Override
                protected PagingNavigation newNavigation(String id, IPageable pageable,
                        IPagingLabelProvider labelProvider) {
                    return new AjaxPagingNavigation(id, pageable, labelProvider) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        protected Link<?> newPagingNavigationLink(String id, IPageable pageable,
                                int pageIndex) {
                            final Link<?> pagingNavigationLink = super.newPagingNavigationLink(id, pageable,
                                    pageIndex);
                            pagingNavigationLink
                                    .add(AttributeModifier.append("class", new AbstractReadOnlyModel<String>() {
                                        private static final long serialVersionUID = 1L;

                                        @Override
                                        public String getObject() {
                                            StringBuilder cls = new StringBuilder();
                                            cls.append("btn btn-mini");
                                            if (false == pagingNavigationLink.isEnabled()) {
                                                cls.append(" btn-primary disabled");
                                            }
                                            return cls.toString();
                                        }
                                    }));
                            return pagingNavigationLink;
                        }
                    };
                }
            };
        }
    };
}

From source file:net.tirasa.hct.editor.widgets.AdminDataTable.java

License:Apache License

public AdminDataTable(final String id, final IColumn[] columns, final ISortableDataProvider dataProvider,
        final int rowsPerPage) {

    super(id, columns, dataProvider, rowsPerPage);
    setOutputMarkupId(true);/*from  ww w  .j  a  v a2 s.c om*/
    setVersioned(false);
    addTopToolbar(new AjaxNavigationToolbar(this));
    addBottomToolbar(new AjaxNavigationToolbar(this));
    addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
    addBottomToolbar(new NoRecordsToolbar(this));
}

From source file:org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable.MyAjaxFallbackDefaultDataTable.java

License:Apache License

public MyAjaxFallbackDefaultDataTable(final String id, final List<? extends IColumn<T, S>> columns,
        final ISortableDataProvider<T, S> dataProvider, final int rowsPerPage) {
    super(id, columns, dataProvider, rowsPerPage);
    setOutputMarkupId(true);/*from w w  w.j a v a2s  . co m*/
    setVersioned(false);
    addTopToolbar(new MyAjaxFallbackHeadersToolbar<S>(this, dataProvider));
    addBottomToolbar(new AjaxNavigationToolbar(this));
    addBottomToolbar(new NoRecordsToolbar(this));
}

From source file:org.hippoecm.frontend.plugins.cms.admin.widgets.AdminDataTable.java

License:Apache License

public AdminDataTable(String id, final List<IColumn<T, String>> columns,
        ISortableDataProvider<T, String> dataProvider, long rowsPerPage) {
    super(id, columns, dataProvider, rowsPerPage);

    setOutputMarkupId(true);//from  w  w w.j  a  v a  2  s .  c om
    setVersioned(false);
    addTopToolbar(new AjaxNavigationToolbar(this));
    addBottomToolbar(new AjaxNavigationToolbar(this));
    addTopToolbar(new AjaxFallbackHeadersToolbar(this, dataProvider));
    addBottomToolbar(new NoRecordsToolbar(this));
}

From source file:org.lbogdanov.poker.web.page.MySessionsPage.java

License:Apache License

/**
 * Creates a new instance of <code>MySessionsPage</code> page.
 *//*  ww w  .j a  va  2  s  .c o  m*/
@SuppressWarnings("unchecked")
public MySessionsPage() {
    final SessionsProvider dataProvider = new SessionsProvider();
    dataProvider.setSort("created", SortOrder.DESCENDING); // default sort: created, desc
    List<AbstractColumn<Session, String>> columns = Arrays.asList(new Column("session.name", "name", "name") {

        @Override
        public void populateItem(Item<ICellPopulator<Session>> item, String compId, IModel<Session> model) {
            Session session = model.getObject();
            PageParameters params = new PageParameters().add("code", session.getCode());
            Link<?> go = new BookmarkablePageLink<Void>("goto", SessionPage.class, params);
            go.add(new BodylessLabel("name", session.getName()));
            item.add(new Fragment(compId, "nameLink", MySessionsPage.this).add(go));
        }

    }, new Column("session.description", null, "description"),
            new Column("session.created", "created", "created") {

                @Override
                @SuppressWarnings("rawtypes")
                public IModel<Object> getDataModel(IModel<Session> rowModel) {
                    Date created = (Date) super.getDataModel(rowModel).getObject();
                    String formatted = DateFormat
                            .getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale())
                            .format(created);
                    return new Model(formatted);
                }

            }, new Column("session.author", "author", "author"),
            new AbstractColumn<Session, String>(new ResourceModel("session.actions")) {

                @Override
                public void populateItem(Item<ICellPopulator<Session>> item, String compId,
                        IModel<Session> model) {
                    Link<?> delete = new AjaxFallbackLink<Session>("delete", model) {

                        @Override
                        public void onClick(AjaxRequestTarget target) {
                            sessionService.delete(getModelObject());
                            dataProvider.invalidate();
                            if (target != null) {
                                target.add(sessionsTable);
                            }
                        }

                        @Override
                        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                            super.updateAjaxAttributes(attributes);
                            AjaxCallListener listener = new AjaxCallListener();
                            listener.onPrecondition("return Poker.confirm(attrs.c);");
                            attributes.getAjaxCallListeners().add(listener);
                        }

                    };
                    item.add(new Fragment(compId, "actions", MySessionsPage.this).add(delete));
                }

                @Override
                public String getCssClass() {
                    return "actions";
                }

            });
    sessionsTable = new DataTable<Session, String>("sessions", columns, dataProvider, ITEMS_PER_PAGE.get(0));
    sessionsTable.addTopToolbar(new AjaxFallbackHeadersToolbar<String>(sessionsTable, dataProvider) {

        @Override
        protected WebMarkupContainer newSortableHeader(String borderId, String property,
                ISortStateLocator<String> locator) {
            return new AjaxFallbackOrderByBorder<String>(borderId, property, locator, getAjaxCallListener()) {

                @Override
                protected void onAjaxClick(AjaxRequestTarget target) {
                    target.add(getTable());
                }

                @Override
                protected void onSortChanged() {
                    dataProvider.invalidate();
                    getTable().setCurrentPage(0);
                }

            };
        }

    });
    sessionsTable.addBottomToolbar(new AjaxNavigationToolbar(sessionsTable) {

        @Override
        protected PagingNavigator newPagingNavigator(String navigatorId, final DataTable<?, ?> table) {
            return new BootstrapPagingNavigator(navigatorId, table) {

                @Override
                protected void onAjaxEvent(AjaxRequestTarget target) {
                    target.add(table);
                }

            };
        }

    });
    sessionsTable.addBottomToolbar(new NoRecordsToolbar(sessionsTable));

    TextField<?> sessionName = new TextField<String>("sessionName",
            PropertyModel.<String>of(dataProvider, "sessionName"));
    sessionName.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            dataProvider.invalidate();
            target.add(sessionsTable);
        }

        @Override
        protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
            super.updateAjaxAttributes(attributes);
            ThrottlingSettings throttling = new ThrottlingSettings("sessionName", Duration.milliseconds(300),
                    true);
            attributes.setThrottlingSettings(throttling);
        }

    });
    DropDownChoice<?> pageSize = new DropDownChoice<Long>("pageSize",
            PropertyModel.<Long>of(sessionsTable, "itemsPerPage"), ITEMS_PER_PAGE);
    pageSize.add(new OnChangeAjaxBehavior() {

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            dataProvider.invalidate();
            target.add(sessionsTable);
        }

    });
    add(sessionsTable.setOutputMarkupId(true), sessionName, pageSize);
}

From source file:org.ujorm.wicket.component.grid.UjoDataProvider.java

License:Apache License

/** Create AJAX-based DataTable */
public <S> DataTable<T, S> createDataTable(final String id, final int rowsPerPage) {
    final DataTable<T, S> result = new DataTable<T, S>(id, (List) columns, this, rowsPerPage) {
        @Override//from w  w w .  j a v  a2  s  .c  o  m
        protected Item<T> newRowItem(final String id, final int index, final IModel<T> model) {
            return new OddEvenItem<T>(id, index, model);
        }
    };

    result.addTopToolbar(new AjaxNavigationToolbar(result));
    result.addTopToolbar(new HeadersToolbar(result, this));
    result.addBottomToolbar(new NoRecordsToolbar(result));
    result.setOutputMarkupId(true);
    return result;
}