/** * Create the tab contents for the provided tab descriptor. * * @param tabDescriptor * the tab descriptor. * @return the tab contents. * @since 3.4 */ protected TabContents createTab(ITabDescriptor tabDescriptor) { return tabDescriptor.createTab(); }
@Override public String getText(Object element) { if (element instanceof ITabDescriptor) { return ((ITabDescriptor) element).getLabel(); } return null; } }
/** * Filters out the tab descriptors that do not have any sections for the * given input. */ protected ITabDescriptor[] filterTabDescriptors( ITabDescriptor[] descriptors, IWorkbenchPart part, ISelection selection) { List result = new ArrayList(); for (ITabDescriptor descriptor : descriptors) { ITabDescriptor filteredDescriptor = adaptDescriptorFor(descriptor, part, selection); if (!filteredDescriptor.getSectionDescriptors().isEmpty()) { result.add(filteredDescriptor); } } if (result.isEmpty()) { return EMPTY_DESCRIPTOR_ARRAY; } return (ITabDescriptor[]) result.toArray(new ITabDescriptor[result .size()]); }
/** * Set the currently selected tab to be that of the provided tab id. * * @param id * The string id of the tab to select. * @since 3.5 */ public void setSelectedTab(String id) { List elements = tabbedPropertyViewer.getElements(); if (elements != null && elements.size() > 0) { for (Iterator i = elements.iterator(); i.hasNext();) { ITabDescriptor tabDescriptor = (ITabDescriptor) i.next(); if (tabDescriptor.getId() != null && tabDescriptor.getId().equals(id)) { tabbedPropertyViewer.setSelection(new StructuredSelection( tabDescriptor), true); } } } }
/** * Given a property tab descriptor remove all its section descriptors that * do not apply to the given input object. */ protected ITabDescriptor adaptDescriptorFor(ITabDescriptor target, IWorkbenchPart part, ISelection selection) { List filteredSectionDescriptors = new ArrayList(); List descriptors = target.getSectionDescriptors(); for (Iterator iter = descriptors.iterator(); iter.hasNext();) { ISectionDescriptor descriptor = (ISectionDescriptor) iter.next(); if (descriptor.appliesTo(part, selection)) { filteredSectionDescriptors.add(descriptor); } } AbstractTabDescriptor result = (AbstractTabDescriptor) ((AbstractTabDescriptor) target) .clone(); result.setSectionDescriptors(filteredSectionDescriptors); return result; }
/** * Returns the last known selected tab for the given input. */ private int getLastTabSelection(IWorkbenchPart part, ISelection input) { ITabDescriptor[] descriptors = registry.getTabDescriptors(part, input); if (descriptors.length != 0) { for (Iterator iter = selectionQueue.iterator(); iter.hasNext();) { String text = (String) iter.next(); for (int i = 0; i < descriptors.length; i++) { if (text.equals(descriptors[i].getLabel())) { return i; } } } } return 0; }
storeCurrentTabSelection(descriptor.getLabel());