GWT SimplePager - показать страницу с выбранным элементом таблицы
У меня есть таблица CellTable с пользовательскими записями и механизм добавления, который добавляет новую запись в таблицу и выбирает ее. Теперь я хочу, чтобы пейджер автоматически отображал страницу, содержащую только что добавленную запись, после добавления.
Вот как создается моя таблица:
if (tableId != null && !tableId.isEmpty()) {
cellTable.getElement().setId(tableId);
}
cellTable.setWidth("100%");
cellTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
cellTable.setLoadingIndicator(new Label("loading"));
final Label emptyTable = new Label("no records");
emptyTable.setStyleName("no-records");
cellTable.setEmptyTableWidget(emptyTable);
cellTable.setStyleName("data-table-data");
if (enableSingleSelection) {
final SingleSelectionModel<T> selectionModel = new SingleSelectionModel<>();
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
@Override
public void onSelectionChange(final SelectionChangeEvent event) {
if (selectionHandler != null) {
selectionHandler.onAction(selectionModel.getSelectedObject());
}
}
});
cellTable.setSelectionModel(selectionModel);
}
dataProvider = new FilteredListDataProvider<>();
pager = new SimplePager(TextLocation.CENTER, false, true);
pager.setDisplay(cellTable);
pager.setStyleName("data-table-pager");
filterDisplay = new DataTableFilterDisplay();
parent = new FlowPanel();
parent.add(filterDisplay);
parent.add(cellTable);
parent.add(pager);
initWidget(parent);
addStyleName("data-table");
dataProvider.addDataDisplay(cellTable);
И вот как выбирается элемент таблицы:
public void setSelectedItem(final T item) {
if (cellTable.getSelectionModel() != null) {
if (item != null) {
((SingleSelectionModel<T>) cellTable.getSelectionModel()).setSelected(item, true);
// TODO: Show page containing selected item
if (selectionHandler != null) {
selectionHandler.onAction(item);
}
} else {
((SingleSelectionModel<T>) cellTable.getSelectionModel()).clear();
}
}
}
Теперь я могу выбрать страницу с помощью pager.setPage(int index). Но как мне узнать, на какой странице действительно находится выбранный элемент?