2012-03-21 11 views
2

GWTの新機能です。GWTのtabPanel上のリスナー

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

私はすべてのタブでコンポジットウィジェットを持っています。 Browseタブの例については、2つの複合ツリーansテーブルがあります。

私はRPC.iは、RPCコール

を知っている。しかし、それぞれのタブが異なるRPCを呼び出しているように非常に特定のタブをクリックリスナを追加するためにどのように呼びかけているtabBrowseをクリックします。

答えて

5

GWTでタブパネルはHasSelectionHandlersHasBeforeSelectionHandlersを実装しています。そのため、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と呼んでいます。

関連する問題