@Override public void awakeFromNib() { // Reset NSEnumerator items = this.tabView.tabViewItems().objectEnumerator(); NSObject object; while(((object = items.nextObject()) != null)) { this.tabView.removeTabViewItem(Rococoa.cast(object, NSTabViewItem.class)); } // Insert all panels into tab view for(Map.Entry<Label, NSView> tab : this.getPanels().entrySet()) { final NSTabViewItem item = NSTabViewItem.itemWithIdentifier(tab.getKey().identifier); item.setView(tab.getValue()); item.setLabel(tab.getKey().label); this.tabView.addTabViewItem(item); } // Set up toolbar properties: Allow customization, give a default display mode, and remember state in user defaults toolbar.setAllowsUserCustomization(false); toolbar.setSizeMode(this.getToolbarSize()); toolbar.setDisplayMode(this.getToolbarMode()); toolbar.setDelegate(this.id()); window.setToolbar(toolbar); // Change selection to last selected item in preferences final int index = preferences.getInteger(String.format("%s.selected", this.getToolbarName())); this.setSelectedPanel(index < this.getPanels().size() ? index : 0); this.setTitle(this.getTitle(tabView.selectedTabViewItem())); super.awakeFromNib(); }