2012-03-21 5 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; 
} 

모든 탭에는 복합 위젯이 있습니다. 찾아보기 탭에서 예를 들어 나는 2 복합 트리 ans 테이블이 있습니다.

은 내가 RPC.i는 RPC 호출을 알고 호출하는 tabBrowse을 클릭합니다

그러나 각 탭은 다른 RPC를 호출로 매우 특정 탭을 클릭 리스너를 추가하는 방법.

답변

5

는 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라고 부를 수 있습니다.