diff options
Diffstat (limited to 'samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java')
-rw-r--r-- | samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java new file mode 100644 index 000000000..6fc0c2e78 --- /dev/null +++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java @@ -0,0 +1,42 @@ +package org.eclipse.sirius.editor.properties.api; + +import java.util.List; + +import org.eclipse.eef.ide.ui.api.TabDescriptorFilter; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.sirius.business.api.session.Session; +import org.eclipse.sirius.business.api.session.SessionManager; +import org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.views.properties.tabbed.ITabDescriptor; +import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider; + +public class EEFTabDescriptorProvider implements ITabDescriptorProvider { + + @Override + public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part, ISelection selection) { + if (part instanceof IEditorPart) { + IEditorPart iEditorPart = (IEditorPart) part; + if (iEditorPart instanceof CustomSiriusEditor) { + + Session session = SessionManager.INSTANCE.getSessions().iterator().next(); + + // We have our editor, let's retrieve the tab descriptors + if (selection instanceof IStructuredSelection) { + IStructuredSelection iStructuredSelection = (IStructuredSelection) selection; + final Object[] objects = iStructuredSelection.toArray(); + + TabDescriptorFilter tabDescriptorFilter = new TabDescriptorFilter(); + List<ITabDescriptor> descriptors = tabDescriptorFilter.getTabDescriptors(objects, session.getTransactionalEditingDomain()); + return descriptors.toArray(new ITabDescriptor[descriptors.size()]); + + } + } + } + return new ITabDescriptor[] {}; + } + +} |