GWT SimplePager - показать страницу с выбранным элементом таблицы - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть выгружаемая 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). Но как я могу узнать, какая страница содержит выбранный элемент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...