Слушатель на tabPanel в GWT

Я новичок в GWT.

Я разработал Gui, используя GWT конструктор. Я мой GUI у меня есть tabPanel с 4 вкладками.

private TabPanel getWorkplacePanel() {
    if (WorkplacePanel == null) {
        WorkplacePanel = new TabPanel();

        WorkplacePanel.setStyleName("Workpalce-MyWorkPlace");
        WorkplacePanel.add(getMyWorkPlacePanel(), "My Workplace", false);

        WorkplacePanel.add(getBrowsePanel(), "Browse", false);
        WorkplacePanel.add(getSearchPanel(), "Search", false);
        WorkplacePanel.add(getTaskPanel(), "Tasks", false);
        WorkplacePanel.setSize("1450px", "750px");

    }
    return WorkplacePanel;
}

В каждой вкладке у меня есть составные виджеты. Например, на вкладке "Обзор" у меня есть 2 составных дерева и таблица.

я хочу нажать на tabBrowse, который вызывает RPC. я знаю вызов RPC

Но как добавить прослушиватель щелчков на конкретной вкладке, так как каждая вкладка вызывает разные RPC.

2 ответа

Решение

TabPanel в GWT реализует HasSelectionHandlers и HasBeforeSelectionHandlers. Поэтому вам нужно добавить обработчик выбора в вашу панель TabPanel. В методе OnSelection вы можете выяснить, какой элемент вкладки (т.е. виджет) был выбран с помощью индекса виджета. Затем вы можете либо выполнить проверку типа, либо использовать какой-либо пользовательский идентификатор типа (если вам нужно), чтобы выяснить, какой элемент вкладки был выбран (например, "Обзор", "Поиск" и т. Д.):

WorkplacePanel.addSelectionHandler(new SelectionHandler<Integer>(){
  public void onSelection(SelectionEvent<Integer> event){
   int tabId = event.getSelectedItem();
   Widget tabWidget = tabpanel.getWidget(tabId);
 }
});

Приведенный выше код взят из этой ветки, которая может помочь вам в дальнейшем.

Обратите внимание, что используя HasBeforeSelectionHandlers, вы можете отменить BeforeSelectionEvent. Он позволяет вам делать все, что вы хотите, и называть себя SelectionEvent, когда вы хотите переключить вкладку.

Другие вопросы по тегам