public AjaxDataTablePanel<T, S> build(final String id) { return new AjaxDataTablePanel<>(id, this); }
private void updateResultTable(final boolean create, final int rows) { dataProvider = dataProvider(); final int currentPage = resultTable != null ? (create ? (int) resultTable.getPageCount() - 1 : (int) resultTable.getCurrentPage()) : 0; // take care of restClient handle: maybe not useful to keep into AjaxDataTablePanel.Builder<T, String> resultTableBuilder = new AjaxDataTablePanel.Builder<T, String>( dataProvider, page.getPageReference()) { private static final long serialVersionUID = 2205322679547329123L; @Override protected ActionsPanel<T> getActions(final IModel<T> model) { return DirectoryPanel.this.getActions(model); } @Override protected ActionLinksTogglePanel<T> getTogglePanel() { return DirectoryPanel.this.getTogglePanel(); } }. setColumns(getColumns()). setRowsPerPage(rows).setBatches(getBatches(), restClient, itemKeyFieldName). setContainer(container); if (!checkBoxEnabled) { resultTableBuilder.disableCheckBoxes(); } resultTableCustomChanges(resultTableBuilder); resultTable = resultTableBuilder.build("resultTable"); resultTable.setCurrentPage(currentPage); resultTable.setOutputMarkupId(true); container.addOrReplace(resultTable); }
@Override protected void onEvent(final AjaxRequestTarget target) { final String lastFocussedElementId = target.getLastFocusedElementId(); if (lastFocussedElementId == null) { togglePanel.toggleWithContent(target, getActions(model), model.getObject()); } else { final AjaxDataTablePanel<?, ?> parent = findParent(AjaxDataTablePanel.class); final Model<Boolean> isCheck = Model.<Boolean>of(Boolean.FALSE); parent.visitChildren(CheckGroupSelector.class, (selector, ivisit) -> { if (selector.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) { isCheck.setObject(Boolean.TRUE); ivisit.stop(); } }); if (!isCheck.getObject()) { parent.visitChildren(Check.class, (check, ivisit) -> { if (check.getMarkupId().equalsIgnoreCase(lastFocussedElementId)) { isCheck.setObject(Boolean.TRUE); ivisit.stop(); } }); } if (!isCheck.getObject()) { togglePanel.toggleWithContent(target, getActions(model), model.getObject()); } } } });
@Override public void onClose(final AjaxRequestTarget target) { batchModal.show(false); EventDataWrapper data = new EventDataWrapper(); data.setTarget(target); data.setRows(builder.rowsPerPage); send(builder.pageRef.getPage(), Broadcast.BREADTH, data); BasePage page = (BasePage) findPage(); if (page != null) { page.getNotificationPanel().refresh(target); } } });