2012-03-21 5 views
2

Я новичок в GWT.Слушатель на tabPanel в GWT

Я разработал Gui с использованием GWT-дизайнера. I my 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.i знать RPC вызов,

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

ответ

5

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

Приведенный выше код от This thread что может помочь вам в дальнейшем.

0

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

Смежные вопросы