我是GWT的新手。
我使用GWT设计师设计了Gui。
我的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个复合树和表。
我想点击调用RPC.i知道RPC调用的tabBrowse
但是如何在非常特殊的选项卡上添加单击侦听器,因为每个Tab都调用不同的RPC。
答案 0 :(得分:5)
GWT中的TabPanel实现 HasSelectionHandlers 和 HasBeforeSelectionHandlers 。因此,您需要向TabPanel添加选择处理程序。在 OnSelection 方法中,您可以找出使用Widget索引选择了哪个Tab项(即Widget)。然后,您可以进行类型检查或使用某些自定义类型标识符(如果需要)来确定选择了哪个标签项(例如,浏览,搜索等):
WorkplacePanel.addSelectionHandler(new SelectionHandler<Integer>(){
public void onSelection(SelectionEvent<Integer> event){
int tabId = event.getSelectedItem();
Widget tabWidget = tabpanel.getWidget(tabId);
}
});
以上代码来自This thread,可能对您有所帮助。
答案 1 :(得分:0)
请注意,使用HasBeforeSelectionHandlers,您可以取消BeforeSelectionEvent。它可以让你做任何你想做的事情,并在你切换标签时自称为SelectionEvent。