Слушатель на 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, когда вы хотите переключить вкладку.