public BrowserTab getSelectedTabView() { return BrowserTab.byPosition(browserTabView.indexOfTabViewItem(browserTabView.selectedTabViewItem())); }
public void setFiles(List<Path> files) { if(files.isEmpty()) { return; } this.files = files; this.initializePanel(this.getSelectedTab()); this.setTitle(this.getTitle(tabView.selectedTabViewItem())); }
/** * @return Minimum size to fit content view of currently selected tab. */ private NSRect getContentRect() { NSRect contentRect = new NSRect(0, 0); final NSView view = tabView.selectedTabViewItem().view(); final NSEnumerator enumerator = view.subviews().objectEnumerator(); NSObject next; while(null != (next = enumerator.nextObject())) { final NSView subview = Rococoa.cast(next, NSView.class); contentRect = FoundationKitFunctionsLibrary.NSUnionRect(contentRect, subview.frame()); } return contentRect; } }
@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(); }
/** * Change the toolbar selection and display the tab index. * * @param selected The index of the tab to be selected */ protected void setSelectedPanel(final int selected) { int tab = selected; if(-1 == tab) { tab = 0; } String identifier = tabView.tabViewItemAtIndex(tab).identifier(); if(!this.validateTabWithIdentifier(identifier)) { tab = 0; identifier = tabView.tabViewItemAtIndex(tab).identifier(); } tabView.selectTabViewItemAtIndex(tab); NSTabViewItem page = tabView.selectedTabViewItem(); if(page == null) { page = tabView.tabViewItemAtIndex(0); } toolbar.setSelectedItemIdentifier(page.identifier()); this.initializePanel(identifier); }