Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java42
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[] {};
+ }
+
+}

Back to the top