2

私はGWTの初心者です。

GWTデザイナーを使用してGuiを設計しました。私の GUI にはtabPanel4 つのタブがあります。

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 つの複合ツリー ans テーブルがあります。

RPC を呼び出している tabBrowse をクリックしたいのですが、RPC 呼び出しを知っています

ただし、各タブが異なる RPC を呼び出しているため、非常に特定のタブにクリック リスナーを追加する方法。

4

2 に答える 2

5

GWT の TabPanel はHasSelectionHandlersHasBeforeSelectionHandlersを実装します。したがって、TabPanel に選択ハンドラーを追加する必要があります。OnSelectionメソッドでは、ウィジェットのインデックスを使用して、どのタブ項目 (つまりウィジェット) が選択されているかを把握できます。次に、型チェックを行うか、カスタム型識別子 (必要な場合) を使用して、どのタブ項目が選択されているか (参照、検索など) を特定できます。

WorkplacePanel.addSelectionHandler(new SelectionHandler<Integer>(){
  public void onSelection(SelectionEvent<Integer> event){
   int tabId = event.getSelectedItem();
   Widget tabWidget = tabpanel.getWidget(tabId);
 }
});

上記のコードはこのスレッドからのもので、さらに役立つ可能性があります。

于 2012-03-21T11:24:25.317 に答える
0

HasBeforeSelectionHandlers を使用すると、BeforeSelectionEvent をキャンセルできることに注意してください。タブを切り替えたいときは、好きなことをして自分自身を SelectionEvent と呼ぶことができます。

于 2012-06-15T22:01:07.497 に答える