Слушатель на tabPanel в GWT - PullRequest
2 голосов
/ 21 марта 2012

Я новичок в GWT.

Я спроектировал Gui, используя GWT дизайнер. У меня есть графический интерфейс 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 ]

5 голосов
/ 21 марта 2012

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

Код вышес Эта тема , которая может помочь вам в дальнейшем.

0 голосов
/ 16 июня 2012

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

...