package org.rhq.coregui.client.components.tab; import com.smartgwt.client.widgets.tab.Tab; import com.smartgwt.client.widgets.tab.TabSet; /** * A Wrapper for {@link TabSet} allowing for a Set of NamedTabs. * * @author Jay Shaughnessy */ public class NamedTabSet extends TabSet { public NamedTabSet() { super(); } public void setTabs(NamedTab... tabs) { super.setTabs(tabs); } public NamedTab[] getTabs() { Tab[] tabs = super.getTabs(); NamedTab[] namedTabs = new NamedTab[tabs.length]; for (int i = 0, tabsLength = tabs.length; i < tabsLength; i++) { Tab tab = tabs[i]; if (!(tab instanceof NamedTab)) { throw new IllegalStateException("NamedTabSet contains a Tab that is not a NamedTab."); } namedTabs[i] = (NamedTab) tab; } return namedTabs; } public NamedTab getTabByName(String name) { NamedTab[] tabs = getTabs(); for (NamedTab tab : tabs) { if (tab.getName().equals(name)) { return tab; } } return null; } public NamedTab getTabByTitle(String title) { NamedTab[] tabs = getTabs(); for (NamedTab tab : tabs) { if (tab.getTitle().equals(title)) { return tab; } } return null; } @Override public void destroy() { for (NamedTab tab : getTabs()) { tab.destroy(); } super.destroy(); } }