2011-02-25 3 views
8

을 해제 (즉, 그가 그것을 클릭 할 때 탭을 열 수없는 사용자)를 TabLayoutPanel에서 나는 온라인 검색하지만 솔루션을TabLayoutPanel는 탭 GWT

감사

를 찾을 수 없습니다?

답변

10

사용하십시오 BeforeSelectionHandler : 당신이 활성화 탭 다르게 장애인 탭 스타일을 원한다면, 당신은 탭 위젯을 얻을 수 TabLayoutPanel#getTabWidget를 사용하고에 스타일 이름을 추가 할 수 있습니다

TabLayoutPanel myPanel = new TabLayoutPanel(); 
// Add children... 

myPanel.addBeforeSelectionHandler(new BeforeSelectionHandler<Integer>() { 
    @Override 
    public void onBeforeSelection(BeforeSelectionEvent<Integer> event) { 
    // Simple if statement - your test for whether the tab should be disabled 
    // will probably be more complicated 
    if (event.getItem() == 1) { 
     // Canceling the event prevents the tab from being selected. 
     event.cancel(); 
    } 
    } 
}); 

. 나중에 건너 오는 사람들을위한

+0

에 캐스팅 클래스 Tab에 의해 탭 스타일을 액세스 할 수 있습니까? – Barry

+0

탭을 비활성화하려면 BeforeSelectionHandler에서 event.cancel() 만 호출하십시오. –

+0

요구 사항은 탭이 처음로드 될 때 탭을 사용하지 않도록 설정해야한다는 것입니다.하지만 무언가가 발생하면 탭을 다시 활성화해야합니다. 어떻게이 작업을 수행 할 수 있습니까? – Barry

2

: GWT 버전 1.6로

/활성화 탭을 비활성화는 GWT에 내장되어 있습니다. TabBar 클래스에는 주어진 색인에서 탭을 활성화/비활성화하는 setTabEnabled(int index, boolean enabled) 메서드가 있습니다.

예를 들어, 탭 패널에있는 모든 탭을 비활성화 :

TabPanel myTabPanel = new TabPanel(); 
// Add children 

TabBar tabBar = myTabPanel.getTabBar(); 
for(int i=0; i<tabBar.getTabCount(); i++) { 
    tabBar.setTabEnabled(i, false); 
} 

이 더 많은 정보를 위해 GWT javadoc를 참조하십시오.

비활성화 된 탭의 스타일을 다르게 지정하려면 (GWT가 자동으로 수행하지만 스타일을 변경하려는 경우) : 사용하지 않음 tabBarItem div에는 다른 CSS 클래스 인 gwt-TabBarItem-disabled이 제공됩니다.

+1

질문은'TabBar'가 아닌'TabLayoutPanel' 유형에 관한 것이 었습니다. –

+0

@JasonTerk'TabLayoutPanel'은'TabBar'를 포함합니다! 탭을 보관 유지하는'TabLayoutPanel'의 최상부의 부분입니다. 당신은'myTabLayoutPanel.getTabBar()'를 사용하여'TabLayoutPanel'의'TabBar'에 접근 할 수 있습니다 (제 답변을보십시오). 이 대답을 좀 더 명확하게 업데이트했습니다. –

+0

['TabLayoutPanel'] (http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/user/client/ui/TabLayoutPanel)에는 'getTabBar' 메소드가 없습니다. HTML 형식). 아마도 ['TabPanel'] (http://google-web-toolkit.googlecode.com/svn/javadoc/2.4/com/google/gwt/user/client/ui/TabPanel.html)을 의미할까요? –

0

당신은 내가 어떻게 다시 활성화 할 Widget

TabPanel tabPanel = new TabPanel(); 
((Widget)tabPanel().getTabBar().getTab(tabsToDisable.iterator().next())).addStyleName("disabled");