Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStéphane Bégaudeau2015-10-05 11:30:03 -0400
committerStéphane Bégaudeau2015-10-19 09:30:19 -0400
commit7d264bb9d3fdee55ade5c86084f61796d71a8cd4 (patch)
tree4ee4a7590dd4e5e89a4bec6a24a4932d26ce75db /samples
parent138e2f81cb0a37b723e1f8d68d894ebda98bc1dd (diff)
downloadorg.eclipse.eef-7d264bb9d3fdee55ade5c86084f61796d71a8cd4.tar.gz
org.eclipse.eef-7d264bb9d3fdee55ade5c86084f61796d71a8cd4.tar.xz
org.eclipse.eef-7d264bb9d3fdee55ade5c86084f61796d71a8cd4.zip
First version of the EEF 2.0 runtime
Change-Id: I4c4c55411422278c8d3e298bc5136011341bac94 Signed-off-by: Stéphane Bégaudeau <stephane.begaudeau@obeo.fr>
Diffstat (limited to 'samples')
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.classpath7
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.project28
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/META-INF/MANIFEST.MF39
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/build.properties6
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/plugin.xml25
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/CustomEditor.java32
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/SiriusPropertySheetPage.java11
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.classpath7
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.project28
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/META-INF/MANIFEST.MF23
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/build.properties5
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/plugin.xml13
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/api/EEFTabDescriptorProvider.java42
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFBundleActivator.java23
-rw-r--r--samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFViewDescriptionProvider.java43
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.checkstyle10
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.classpath7
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.project34
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.core.prefs398
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.launching.prefs2
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.core.prefs2
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.prefs32
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/META-INF/MANIFEST.MF24
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/build.properties14
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/description/EEFViewDescription.xmi27
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.properties11
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.xml33
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/UmlSamplePlugin.java93
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/description/EEFViewDescriptionProvider.java58
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/editor/EEFUmlEditor.java86
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UMLTabDescriptorProvider.java71
-rw-r--r--samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UmlPropertySheetPage.java33
36 files changed, 1349 insertions, 0 deletions
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.classpath b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.classpath
new file mode 100644
index 000000000..eca7bdba8
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.project b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.project
new file mode 100644
index 000000000..0b7f3b986
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.sirius.editor.custom</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.settings/org.eclipse.jdt.core.prefs b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..0c68a61dc
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/META-INF/MANIFEST.MF b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..b03a0bdbb
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/META-INF/MANIFEST.MF
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Custom
+Bundle-SymbolicName: org.eclipse.sirius.editor.custom;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ui,
+ org.eclipse.sirius.editor;bundle-version="3.0.0",
+ org.eclipse.sirius.common.ui;bundle-version="3.0.0",
+ org.eclipse.sirius.common;bundle-version="3.0.0",
+ org.eclipse.sirius.editor.diagram;bundle-version="3.0.0",
+ org.eclipse.sirius.editor.sequence;bundle-version="3.0.0",
+ org.eclipse.sirius.editor.table;bundle-version="3.0.0",
+ org.eclipse.sirius.editor.tree;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.base;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.draw2d;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.e3;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.e3.ui;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.emf;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.emf.edit;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.emf.tx;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.emf.ui;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.gef;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.gmf.notation;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.gmf.runtime;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.jface;bundle-version="3.0.0",
+ org.eclipse.sirius.ext.swt;bundle-version="3.0.0",
+ org.eclipse.sirius.ui;bundle-version="3.0.0",
+ org.eclipse.sirius.ui.ext;bundle-version="3.0.0",
+ org.eclipse.ui.ide;bundle-version="3.11.0",
+ org.eclipse.core.resources;bundle-version="3.10.0",
+ org.eclipse.ui.editors;bundle-version="3.9.0",
+ org.eclipse.ui.forms;bundle-version="3.6.200",
+ org.eclipse.ui.workbench.texteditor;bundle-version="3.9.100",
+ org.eclipse.ui.views;bundle-version="3.8.0",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.6.100",
+ org.eclipse.emf.common.ui;bundle-version="2.10.0",
+ org.eclipse.sirius.editor.properties;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/build.properties b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/build.properties
new file mode 100644
index 000000000..0d3d3a745
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/build.properties
@@ -0,0 +1,6 @@
+source.. = src/
+output.. = bin/
+bin.includes = plugin.xml,\
+ META-INF/,\
+ .,\
+ icons/
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/icons/sample.gif b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/icons/sample.gif
new file mode 100644
index 000000000..34fb3c9d8
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/icons/sample.gif
Binary files differ
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/plugin.xml b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/plugin.xml
new file mode 100644
index 000000000..d552dd5d8
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ name="Custom ODesign Editor"
+ extensions="odesign"
+ icon="icons/sample.gif"
+ contributorClass="org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusActionBarContributor"
+ class="org.eclipse.sirius.editor.custom.editors.CustomEditor"
+ id="org.eclipse.sirius.editor.custom.editors.CustomODesignEditor">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+ <propertyContributor
+ contributorId="org.eclipse.sirius.editor.editorPlugin.CustomSiriusEditorContributor"
+ tabDescriptorProvider="org.eclipse.sirius.editor.properties.api.EEFTabDescriptorProvider">
+ <propertyCategory></propertyCategory>
+ </propertyContributor>
+ </extension>
+
+</plugin>
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/CustomEditor.java b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/CustomEditor.java
new file mode 100644
index 000000000..d444fdaf2
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/CustomEditor.java
@@ -0,0 +1,32 @@
+package org.eclipse.sirius.editor.custom.editors;
+
+import org.eclipse.sirius.editor.tools.internal.presentation.CustomSiriusEditor;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+@SuppressWarnings("restriction")
+public class CustomEditor extends CustomSiriusEditor {
+ @Override
+ public Object getAdapter(@SuppressWarnings("rawtypes") Class key) {
+ if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ return super.getAdapter(key);
+ }
+
+ @Override
+ public TabbedPropertySheetPage getPropertySheetPage() {
+ if (propertySheetPage == null || propertySheetPage.getControl() == null) {
+ propertySheetPage = new SiriusPropertySheetPage(this);
+ }
+ return propertySheetPage;
+ }
+
+ /**
+ * The contributor id for this configuration
+ */
+ @Override
+ public String getContributorId() {
+ return "org.eclipse.sirius.editor.editorPlugin.CustomSiriusEditorContributor";
+ }
+}
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/SiriusPropertySheetPage.java b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/SiriusPropertySheetPage.java
new file mode 100644
index 000000000..e1d7a5a75
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.custom/src/org/eclipse/sirius/editor/custom/editors/SiriusPropertySheetPage.java
@@ -0,0 +1,11 @@
+package org.eclipse.sirius.editor.custom.editors;
+
+import org.eclipse.sirius.editor.properties.ViewpointPropertySheetPage;
+
+public class SiriusPropertySheetPage extends ViewpointPropertySheetPage {
+
+ public SiriusPropertySheetPage(CustomEditor editor) {
+ super(editor);
+ }
+
+}
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.classpath b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.classpath
new file mode 100644
index 000000000..ad32c83a7
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.project b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.project
new file mode 100644
index 000000000..c3537b615
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.sirius.editor.properties</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.settings/org.eclipse.jdt.core.prefs b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..c537b6306
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/META-INF/MANIFEST.MF b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..5ae99bd93
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-SymbolicName: org.eclipse.sirius.editor.properties;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %Bundle-Vendor
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Require-Bundle: org.eclipse.ui.views.properties.tabbed;bundle-version="3.6.100",
+ org.eclipse.core.runtime;bundle-version="3.11.0",
+ com.google.guava;bundle-version="15.0.0",
+ org.eclipse.eef.ide.ui;bundle-version="2.0.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.eef.ide,
+ org.eclipse.sirius.editor;bundle-version="3.0.0",
+ org.eclipse.sirius.common.ui;bundle-version="3.0.0",
+ org.eclipse.emf.transaction;bundle-version="1.9.0",
+ org.eclipse.sirius;bundle-version="3.0.0",
+ org.eclipse.sirius.common;bundle-version="3.0.0"
+Export-Package: org.eclipse.sirius.editor.properties.api
+Import-Package: org.eclipse.eef;version="2.0.0",
+ org.eclipse.eef.api;version="2.0.0",
+ org.eclipse.eef.core.api;version="2.0.0",
+ org.eclipse.eef.interpreter.api;version="2.0.0"
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/build.properties b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/build.properties
new file mode 100644
index 000000000..e9863e281
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/build.properties
@@ -0,0 +1,5 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/plugin.xml b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/plugin.xml
new file mode 100644
index 000000000..4e187a0be
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/plugin.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.eef.ide.eefViewDescriptionProvider">
+ <descriptor
+ class="org.eclipse.sirius.editor.properties.internal.EEFViewDescriptionProvider"
+ description="The EEF View Provider for Sirius"
+ id="org.eclipse.sirius.editor.properties.eefViewProvider"
+ label="EEF View Provider">
+ </descriptor>
+ </extension>
+</plugin>
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[] {};
+ }
+
+}
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFBundleActivator.java b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFBundleActivator.java
new file mode 100644
index 000000000..637316c52
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFBundleActivator.java
@@ -0,0 +1,23 @@
+package org.eclipse.sirius.editor.properties.internal;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class EEFBundleActivator implements BundleActivator {
+
+ private static EEFBundleActivator instance;
+
+ public static EEFBundleActivator getInstance() {
+ return instance;
+ }
+
+ @Override
+ public void start(BundleContext context) throws Exception {
+ instance = this;
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ instance = null;
+ }
+}
diff --git a/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFViewDescriptionProvider.java b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFViewDescriptionProvider.java
new file mode 100644
index 000000000..bc91fc43a
--- /dev/null
+++ b/samples/sirius-custom-editor/org.eclipse.sirius.editor.properties/src/org/eclipse/sirius/editor/properties/internal/EEFViewDescriptionProvider.java
@@ -0,0 +1,43 @@
+package org.eclipse.sirius.editor.properties.internal;
+
+import org.eclipse.eef.EEFContainerDescription;
+import org.eclipse.eef.EEFGroupDescription;
+import org.eclipse.eef.EEFPageDescription;
+import org.eclipse.eef.EEFTextDescription;
+import org.eclipse.eef.EEFViewDescription;
+import org.eclipse.eef.EefFactory;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.eef.api.IEEFViewDescriptionProvider;
+
+public class EEFViewDescriptionProvider implements IEEFViewDescriptionProvider {
+
+ @Override
+ public EEFViewDescription get() {
+ EefFactory eefFactory = EefPackage.eINSTANCE.getEefFactory();
+ EEFViewDescription eefViewDescription = eefFactory.createEEFViewDescription();
+ eefViewDescription.setIdentifier("eefPage");
+
+ EEFPageDescription eefPageDescription = eefFactory.createEEFPageDescription();
+ eefPageDescription.setIdentifier("eefPage");
+ eefPageDescription.setLabelExpression("aql:'General'");
+ eefPageDescription.setSemanticCandidateExpression("aql:viewSemanticCandidate");
+ eefViewDescription.getPages().add(eefPageDescription);
+
+ EEFGroupDescription eefGroupDescription = eefFactory.createEEFGroupDescription();
+ eefGroupDescription.setIdentifier("eefGroup");
+ eefViewDescription.getGroups().add(eefGroupDescription);
+ eefPageDescription.getGroups().add(eefGroupDescription);
+
+ EEFContainerDescription eefContainerDescription = eefFactory.createEEFContainerDescription();
+ EEFTextDescription eefTextDescription = eefFactory.createEEFTextDescription();
+ eefTextDescription.setLabelExpression("aql:'Name'");
+ eefTextDescription.setValueExpression("aql:viewSemanticCandidate.name");
+ eefTextDescription.setEditExpression("aql:viewSemanticCandidate.eSet('name', newValue)");
+ eefTextDescription.setLabelExpression("aql:viewSemanticCandidate.name");
+ eefContainerDescription.getWidgets().add(eefTextDescription);
+ eefGroupDescription.setContainer(eefContainerDescription);
+
+ return eefViewDescription;
+ }
+
+}
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.checkstyle b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.checkstyle
new file mode 100644
index 000000000..121faf77d
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.checkstyle
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true" sync-formatter="false">
+ <local-check-config name="EEF" location="/org.eclipse.eef.releng/codestyle/EEFCheckstyleConfiguration.xml" type="project" description="">
+ <additional-data name="protect-config-file" value="false"/>
+ </local-check-config>
+ <fileset name="all" enabled="true" check-config-name="EEF" local="true">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+</fileset-config>
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.classpath b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.classpath
new file mode 100644
index 000000000..ad32c83a7
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.project b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.project
new file mode 100644
index 000000000..dbfb23aa4
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.eef.uml.editor.sample</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+ </natures>
+</projectDescription>
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.core.prefs b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 000000000..fb8257839
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,398 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource=error
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=error
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=150
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.launching.prefs b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 000000000..3bb235278
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.ui.prefs b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 000000000..a7564c761
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EEF
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;java;javax;org;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * Return the ${bare_field_name}.\n *\n * @return the ${bare_field_name}\n */</template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * Sets the ${bare_field_name}.\n *\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************\n * Copyright (c) 2015 Obeo.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * Obeo - initial API and implementation\n *******************************************************************************/</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * {@inheritDoc}\n *\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">EEFCorePlugin.getImplementation().logError(message, e);</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="false" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return this.${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=false
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=false
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=false
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=false
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=false
+sp_cleanup.remove_redundant_type_arguments=false
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=false
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=false
+sp_cleanup.remove_unused_private_types=false
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_lambda=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
+sp_cleanup.use_type_arguments=false
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.core.prefs b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 000000000..923c37fb8
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+resolve.requirebundle=false
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.prefs b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.prefs
new file mode 100644
index 000000000..3112e810d
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=1
+compilers.p.build.java.compiler=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=0
+compilers.p.missing-version-import-package=0
+compilers.p.missing-version-require-bundle=0
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=0
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/META-INF/MANIFEST.MF b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..213455ddd
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.eef.uml.editor.sample;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Vendor: %providerName
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-ActivationPolicy: lazy
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.emf.common;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.eef;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.8.0,3.0.0)",
+ org.eclipse.uml2.uml.editor;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.eef.ide;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.sirius;bundle-version="[3.0.0,5.0.0)",
+ org.eclipse.eef.ide.ui;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.transaction;bundle-version="[1.5.0,2.0.0)"
+Bundle-Localization: plugin
+Export-Package: org.eclipse.eef.uml.editor.sample.internal;version="1.0.0";x-internal:=true,
+ org.eclipse.eef.uml.editor.sample.internal.description;version="1.0.0";x-internal:=true,
+ org.eclipse.eef.uml.editor.sample.internal.editor;version="1.0.0";x-internal:=true,
+ org.eclipse.eef.uml.editor.sample.internal.properties;version="1.0.0";x-internal:=true
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/build.properties b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/build.properties
new file mode 100644
index 000000000..5c27a621f
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/build.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2015 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.htm
+# Contributors: Obeo - initial API and implementation
+
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.properties,\
+ plugin.xml
+javacProjectSettings = true
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/description/EEFViewDescription.xmi b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/description/EEFViewDescription.xmi
new file mode 100644
index 000000000..f1bffa910
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/description/EEFViewDescription.xmi
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<eef:EEFViewDescription
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:eef="http://www.eclipse.org/eef"
+ xsi:schemaLocation="http://www.eclipse.org/eef ../../org.eclipse.eef/model/eef.ecore"
+ identifier="UML_View"
+ labelExpression="">
+ <ePackageNsUris>http://www.eclipse.org/uml2/5.0.0/UML</ePackageNsUris>
+ <groups identifier="UML_Group_NamedElement"
+ domainClass="uml.NamedElement"
+ semanticCandidatesExpression="aql:viewSemanticCandidate">
+ <container
+ identifier="UML_Group_NamedElement_Container">
+ <widgets
+ xsi:type="eef:EEFTextDescription"
+ identifier="UML_Group_NamedElement_Name"
+ labelExpression="aql:groupSemanticCandidate.name"
+ valueExpression="aql:groupSemanticCandidate.name"
+ editExpression="aql:groupSemanticCandidate.eSet('name', newValue)"/>
+ </container>
+ </groups>
+ <pages identifier="UML_General_Page"
+ labelExpression="aql:'General'"
+ groups="//@groups.0"/>
+</eef:EEFViewDescription>
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.properties b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.properties
new file mode 100644
index 000000000..42109e1aa
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.properties
@@ -0,0 +1,11 @@
+# Copyright (c) 2015 Obeo.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.htm
+# Contributors: Obeo - initial API and implementation
+
+pluginName=EEF UML Sample
+providerName=Eclipse Modeling Project
+
+UMLEditor_Name=EEF UML Editor \ No newline at end of file
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.xml b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.xml
new file mode 100644
index 000000000..c114b8c10
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/plugin.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.editors">
+ <editor
+ class="org.eclipse.eef.uml.editor.sample.internal.editor.EEFUmlEditor"
+ default="false"
+ extensions="uml"
+ id="org.eclipse.eef.uml.editor.sample.editor"
+ contributorClass="org.eclipse.uml2.uml.editor.presentation.UMLActionBarContributor"
+ name="%UMLEditor_Name">
+ </editor>
+ </extension>
+ <extension
+ point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
+ <propertyContributor
+ contributorId="org.eclipse.eef.uml.editor.sample.contributorId"
+ tabDescriptorProvider="org.eclipse.eef.uml.editor.sample.internal.properties.UMLTabDescriptorProvider">
+ <propertyCategory></propertyCategory>
+ </propertyContributor>
+ </extension>
+ <extension
+ point="org.eclipse.eef.ide.eefViewDescriptionProvider">
+ <descriptor
+ class="org.eclipse.eef.uml.editor.sample.internal.description.EEFViewDescriptionProvider"
+ description="The UML View Provider"
+ id="org.eclipse.eef.uml.editor.sample.eefViewProvider"
+ label="UML View Provider">
+ </descriptor>
+ </extension>
+
+</plugin>
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/UmlSamplePlugin.java b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/UmlSamplePlugin.java
new file mode 100644
index 000000000..4b5be3e38
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/UmlSamplePlugin.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.uml.editor.sample.internal;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.EMFPlugin;
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * The plugin class of the bundle.
+ *
+ * @author sbegaudeau
+ */
+public class UmlSamplePlugin extends EMFPlugin {
+ /**
+ * The identifier of the plugin.
+ */
+ public static final String PLUGIN_ID = "org.eclipse.eef.uml.editor.sample"; //$NON-NLS-1$
+
+ /**
+ * The sole instance of the plugin.
+ */
+ public static final UmlSamplePlugin INSTANCE = new UmlSamplePlugin();
+
+ /**
+ * The OSGi related implementation of the plugin.
+ */
+ private static Implementation plugin;
+
+ /**
+ * The constructor.
+ */
+ public UmlSamplePlugin() {
+ super(new ResourceLocator[0]);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.emf.common.EMFPlugin#getPluginResourceLocator()
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the OSGi related implementation.
+ *
+ * @return The OSGi related implementation
+ */
+ public static Implementation getImplementation() {
+ return plugin;
+ }
+
+ /**
+ * This class is used as the bundle activator of the plugin.
+ *
+ * @author sbegaudeau
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * The constructor.
+ */
+ public Implementation() {
+ super();
+
+ plugin = this;
+ }
+
+ /**
+ * Logs an error with the exception and the given message.
+ *
+ * @param message
+ * The message
+ * @param exception
+ * The exception
+ */
+ public void logError(String message, Exception exception) {
+ IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, message, exception);
+ this.getLog().log(status);
+ }
+ }
+}
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/description/EEFViewDescriptionProvider.java b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/description/EEFViewDescriptionProvider.java
new file mode 100644
index 000000000..eaa3a6152
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/description/EEFViewDescriptionProvider.java
@@ -0,0 +1,58 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.uml.editor.sample.internal.description;
+
+import java.util.List;
+
+import org.eclipse.eef.EEFViewDescription;
+import org.eclipse.eef.api.IEEFViewDescriptionProvider;
+import org.eclipse.eef.uml.editor.sample.internal.UmlSamplePlugin;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+/**
+ * This class returns the EEFViewDescription for the custom UML editor.
+ *
+ * @author sbegaudeau
+ */
+public class EEFViewDescriptionProvider implements IEEFViewDescriptionProvider {
+
+ /**
+ * The path of the EEF description model.
+ */
+ private static final String MODEL_PATH = UmlSamplePlugin.PLUGIN_ID + "/description/EEFViewDescription.xmi"; //$NON-NLS-1$
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.api.IEEFViewDescriptionProvider#get()
+ */
+ @Override
+ public EEFViewDescription get() {
+ EEFViewDescription eefViewDescription = null;
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ URI uri = URI.createPlatformPluginURI(MODEL_PATH, true);
+ Resource resource = resourceSet.getResource(uri, true);
+ if (resource != null) {
+ List<EObject> contents = resource.getContents();
+ if (contents.size() > 0 && contents.get(0) instanceof EEFViewDescription) {
+ eefViewDescription = (EEFViewDescription) contents.get(0);
+ }
+ }
+
+ return eefViewDescription;
+ }
+
+}
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/editor/EEFUmlEditor.java b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/editor/EEFUmlEditor.java
new file mode 100644
index 000000000..3c0d42183
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/editor/EEFUmlEditor.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.uml.editor.sample.internal.editor;
+
+import java.util.Iterator;
+
+import org.eclipse.eef.uml.editor.sample.internal.properties.UmlPropertySheetPage;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.sirius.business.api.session.Session;
+import org.eclipse.sirius.business.api.session.SessionManager;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.uml2.uml.editor.presentation.UMLEditor;
+
+/**
+ * Our custom UML editor.
+ *
+ * @author sbegaudeau
+ */
+public class EEFUmlEditor extends UMLEditor implements ITabbedPropertySheetPageContributor {
+
+ /**
+ * The property sheet page.
+ */
+ private TabbedPropertySheetPage propertySheetPage;
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.uml2.uml.editor.presentation.UMLEditor#getAdapter(java.lang.Class)
+ */
+ @Override
+ public Object getAdapter(@SuppressWarnings("rawtypes") Class key) {
+ if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ return super.getAdapter(key);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.uml2.uml.editor.presentation.UMLEditor#getPropertySheetPage()
+ */
+ @Override
+ public TabbedPropertySheetPage getPropertySheetPage() {
+ if (propertySheetPage == null || propertySheetPage.getControl() == null) {
+ propertySheetPage = new UmlPropertySheetPage(this);
+ }
+ return propertySheetPage;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor#getContributorId()
+ */
+ @Override
+ public String getContributorId() {
+ return "org.eclipse.eef.uml.editor.sample.contributorId"; //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.uml2.uml.editor.presentation.UMLEditor#getEditingDomain()
+ */
+ @Override
+ public EditingDomain getEditingDomain() {
+ Iterator<Session> iterator = SessionManager.INSTANCE.getSessions().iterator();
+ if (iterator.hasNext()) {
+ Session session = iterator.next();
+ return session.getTransactionalEditingDomain();
+ }
+ return super.getEditingDomain();
+ }
+}
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UMLTabDescriptorProvider.java b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UMLTabDescriptorProvider.java
new file mode 100644
index 000000000..b8e324c64
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UMLTabDescriptorProvider.java
@@ -0,0 +1,71 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.uml.editor.sample.internal.properties;
+
+import java.util.List;
+
+import org.eclipse.eef.ide.ui.api.TabDescriptorFilter;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
+import org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider;
+
+/**
+ * The tab descriptor provider for the UML properties view.
+ *
+ * @author sbegaudeau
+ */
+public class UMLTabDescriptorProvider implements ITabDescriptorProvider {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.ui.views.properties.tabbed.ITabDescriptorProvider#getTabDescriptors(org.eclipse.ui.IWorkbenchPart,
+ * org.eclipse.jface.viewers.ISelection)
+ */
+ @Override
+ public ITabDescriptor[] getTabDescriptors(IWorkbenchPart part, ISelection selection) {
+ if (part instanceof IEditingDomainProvider && selection instanceof IStructuredSelection) {
+ IStructuredSelection structuredSelection = (IStructuredSelection) selection;
+ Object[] objects = structuredSelection.toArray();
+
+ IEditingDomainProvider editingDomainProvider = (IEditingDomainProvider) part;
+ EditingDomain editingDomain = editingDomainProvider.getEditingDomain();
+
+ Object[] eObjects = new Object[objects.length];
+
+ for (int i = 0; i < objects.length; i = i + 1) {
+ Object object = objects[i];
+ if (object instanceof EObject) {
+ EObject eObject = (EObject) object;
+ URI uri = EcoreUtil.getURI(eObject);
+ EObject domainEObject = editingDomain.getResourceSet().getEObject(uri, true);
+ eObjects[i] = domainEObject;
+ }
+ }
+
+ if (editingDomain instanceof TransactionalEditingDomain) {
+ TransactionalEditingDomain transactionalEditingDomain = (TransactionalEditingDomain) editingDomain;
+ List<ITabDescriptor> descriptors = new TabDescriptorFilter().getTabDescriptors(eObjects, transactionalEditingDomain);
+ return descriptors.toArray(new ITabDescriptor[descriptors.size()]);
+ }
+ }
+ return new ITabDescriptor[0];
+ }
+
+}
diff --git a/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UmlPropertySheetPage.java b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UmlPropertySheetPage.java
new file mode 100644
index 000000000..a142737cb
--- /dev/null
+++ b/samples/uml-custom-editor/org.eclipse.eef.uml.editor.sample/src/org/eclipse/eef/uml/editor/sample/internal/properties/UmlPropertySheetPage.java
@@ -0,0 +1,33 @@
+/*******************************************************************************
+ * Copyright (c) 2015 Obeo.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.uml.editor.sample.internal.properties;
+
+import org.eclipse.eef.uml.editor.sample.internal.editor.EEFUmlEditor;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+/**
+ * The tabbed property sheet page.
+ *
+ * @author sbegaudeau
+ */
+public class UmlPropertySheetPage extends TabbedPropertySheetPage {
+
+ /**
+ * The constructor.
+ *
+ * @param eefUmlEditor
+ * The editor
+ */
+ public UmlPropertySheetPage(EEFUmlEditor eefUmlEditor) {
+ super(eefUmlEditor);
+ }
+
+}

Back to the top