protected ToolbarMenuButton getAddTabButton() { shortToLongTabNameMap = UIFactory.getAvailableTabNameMap(); List<String> enabledTabs = new ArrayList<String>(); for (AbstractTab tab : tabs) { enabledTabs.add(tab.getClass().getName()); } Menu addTabMenu = new Menu(); for (String tabName : shortToLongTabNameMap.keySet()) { CheckItem item = new CheckItem(tabName, enabledTabs.contains(shortToLongTabNameMap.get(tabName))); addTabMenu.addItem(item); item.addListener( new CheckItemListenerAdapter() { @Override public void onCheckChange(CheckItem item, boolean checked) { String javaClassName = shortToLongTabNameMap.get(item.getText()); if (checked) { onTabAdded(javaClassName); } else { onTabRemoved(javaClassName); } } }); } // Add the "Add user defined tab" addTabMenu.addSeparator(); Item item = new Item("Add your own tab"); addTabMenu.addItem(item); item.addListener( new BaseItemListenerAdapter() { @Override public void onClick(BaseItem item, EventObject e) { onUserDefinedTabAdded(); } }); ToolbarMenuButton addTabButton = new ToolbarMenuButton("Add tab", addTabMenu); addTabButton.setIcon("images/tab_add.gif"); return addTabButton; }