2013-09-09 5 views

ответ

0

Я понял это некоторое время назад и забыл отправить ответ. Вот способ сделать это, что работает надежно:

public class SimpleTabPanel extends com.sencha.gxt.widget.core.client.PlainTabPanel 
    implements TabPanel { 
Tab currentActiveTab; 

private Map<SimpleTab,TabItemConfig> tabConfigs = new HashMap<SimpleTab,TabItemConfig>(); 



// a map sorted by priority used to keep the expected tab order 
SortedMap<TabData, SimpleTab> tabsConfig = new TreeMap<TabData, SimpleTab>(
     new Comparator<TabData>() { 
      @Override 
      public int compare(TabData o1, TabData o2) { 
       return Float.compare(o1.getPriority(), o2.getPriority()); 
      } 
     }); 

@Override 
public Tab addTab(TabData tabData, String historyToken) { 
    SimpleTab newTab = createNewTab(tabData); 
    tabsConfig.put(tabData, newTab); 
    newTab.setTargetHistoryToken(historyToken); 
    return newTab; 
} 


private void disableTab(SimpleTab tab, TabData key){ 

    // get and save tab's config. 
    TabItemConfig tic = getConfig(tab); 
    tabConfigs.put(tab, tic); 

    // put new one on tab to disable it. 
    tic = new TabItemConfig(key.getLabel()); 
    tic.setEnabled(false); 
    update(tab, tic); 
} 

public void enableAllTabs(){ 
    for(TabData key : tabsConfig.keySet()){ 
     SimpleTab tab = tabsConfig.get(key); 
     TabItemConfig tic = tabConfigs.get(tab); 
     if(tic!=null){ 
      tic.setEnabled(true); 
      update(tab, tic); 
     } 
    } 
} 

}

0
PlainTabPanel panel = new PlainTabPanel(); 
TabItemConfig config = new TabItemConfig("Disabled"); 
Label disabled = new Label("This tab should be disabled"); 

config.setEnabled(false); // here what you need 

panel.add(disabled, config); 
0

Я была такая же проблема происходит в моем проекте.

Как я решил, это очень просто, и я надеюсь, что он отвечает на ваши потребности.

public void enableTab(IsWidget item, Boolean enable) { 
    TabItemConfig config = tabPanel.getConfig(item.asWidget()); 
    config.setEnabled(enable); 
    tabPanel.update(item.asWidget(), config); 
} 

Я вызываю этот метод каждый раз, когда мне нужно изменить состояние табуляции.