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