Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Dumoulin2013-09-17 20:14:00 +0000
committerCedric Dumoulin2014-01-27 13:53:52 +0000
commit3703c07743ba5451a957ab0c6ed6c65d44406be8 (patch)
treea43c0377e2497df8619769a408bb8b6a07f85f9a /extraplugins/layers/org.eclipse.papyrus.layers.ui
parent61fe1560ac4f7d2d667c116648cbe5a2eb6a10ef (diff)
downloadorg.eclipse.papyrus-3703c07743ba5451a957ab0c6ed6c65d44406be8.tar.gz
org.eclipse.papyrus-3703c07743ba5451a957ab0c6ed6c65d44406be8.tar.xz
org.eclipse.papyrus-3703c07743ba5451a957ab0c6ed6c65d44406be8.zip
First release of Layers
Diffstat (limited to 'extraplugins/layers/org.eclipse.papyrus.layers.ui')
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/.classpath8
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/.project28
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/META-INF/MANIFEST.MF40
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/about.html28
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/build.properties18
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/LayersStackApplication.gifbin0 -> 927 bytes
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/layers.gifbin0 -> 983 bytes
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.properties12
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.xml279
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/properties.ctx1306
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayer.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayerOperator.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleApplicationDependantElement.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanInstance.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColor.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColorInstance.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleComputePropertyValueCommandItf.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomLayerOperator.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFill.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillInstance.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolder.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolderElement.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontInstance.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntInstance.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsValidPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsVisiblePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayer.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerApplicationFactory.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptor.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptorRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerExpression.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerNamedStyle.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerOperator.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerStackDescriptorRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStack.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStackApplication.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineInstance.xwt19
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLinePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleMetamodel.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullInstance.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleProperty.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyIndex.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetterRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayer.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayerDescriptor.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleSimpleLayerDescriptor.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStackedLayerOperator.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringInstance.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertyIndexMap.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeInstanceMap.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeMap.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTopLayerOperator.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleType.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeInstance.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayer.xwt36
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayerOperator.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleApplicationDependantElement.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanInstance.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColor.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColorInstance.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleComputePropertyValueCommandItf.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomLayerOperator.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomType.xwt19
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFill.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillInstance.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolder.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolderElement.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontInstance.xwt32
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntInstance.xwt15
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsValidPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsVisiblePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayer.xwt36
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerApplicationFactory.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptor.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptorRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerExpression.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerNamedStyle.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerOperator.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerStackDescriptorRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStack.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStackApplication.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineInstance.xwt19
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLinePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleMetamodel.xwt29
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullInstance.xwt8
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleProperty.xwt29
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyIndex.xwt24
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetterRegistry.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayer.xwt36
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayerDescriptor.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleSimpleLayerDescriptor.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStackedLayerOperator.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringInstance.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertyIndexMap.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertySetter.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeInstanceMap.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeMap.xwt16
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTopLayerOperator.xwt25
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleType.xwt17
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeInstance.xwt8
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeRegistry.xwt9
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers/ui/Activator.java60
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractCreateLayerExpressionHandler.java110
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayerStackCommand.java234
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayersCommand.java356
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachDiagramViewsToLayer.java182
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachLayerStackCommand.java57
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyFromListToLayer.java195
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyToLayer.java111
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerHandler.java50
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerOperatorsFromParameter.java159
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateRegExpLayerHandler.java51
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateStackedLayerOperatorHandler.java40
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateTopLayerOperatorHandler.java49
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DeleteItemHandler.java118
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DetachLayerStackCommand.java60
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/LayerOperatorsParameterValues.java50
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/package-info.java15
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayerExplorerPageBookView.java97
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerPage.java77
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerView.java37
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/utils/HandlersUtils.java70
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersExplorerView.java538
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersTreeViewerFactory.java114
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/package-info.java18
-rw-r--r--extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/wb/swt/SWTResourceManager.java447
149 files changed, 6563 insertions, 0 deletions
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/.classpath b/extraplugins/layers/org.eclipse.papyrus.layers.ui/.classpath
new file mode 100644
index 00000000000..e8be64492e4
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/.classpath
@@ -0,0 +1,8 @@
+<?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="src" path="test"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/.project b/extraplugins/layers/org.eclipse.papyrus.layers.ui/.project
new file mode 100644
index 00000000000..672f47af60f
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.layers.ui</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/extraplugins/layers/org.eclipse.papyrus.layers.ui/META-INF/MANIFEST.MF b/extraplugins/layers/org.eclipse.papyrus.layers.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..126811d55fa
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,40 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.layers.ui;singleton:=true
+Bundle-Version: 0.10.0.qualifier
+Bundle-Activator: org.eclipse.papyrus.layers.ui.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.core.sasheditor;bundle-version="0.10.0",
+ org.eclipse.ui.forms;bundle-version="3.5.200",
+ org.eclipse.gmf.runtime.diagram.ui;bundle-version="1.7.0",
+ org.eclipse.emf;bundle-version="2.6.0",
+ org.eclipse.papyrus.infra.core;bundle-version="0.10.0",
+ org.eclipse.papyrus.layers.runtime;bundle-version="0.10.0",
+ org.eclipse.core.databinding,
+ org.eclipse.core.databinding.beans,
+ org.eclipse.core.databinding.observable,
+ org.eclipse.core.databinding.property,
+ com.ibm.icu,
+ org.eclipse.emf.databinding,
+ org.eclipse.uml2.uml;bundle-version="4.1.0",
+ org.eclipse.uml2.uml.edit;bundle-version="4.0.100",
+ org.eclipse.emf.databinding.edit;bundle-version="1.3.0",
+ org.eclipse.jface.databinding;bundle-version="1.6.200",
+ org.eclipse.gmf.runtime.diagram.ui.properties,
+ org.eclipse.ui.ide;bundle-version="3.9.0",
+ org.eclipse.papyrus.infra.emf;bundle-version="0.10.0",
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor;bundle-version="1.7.0",
+ org.eclipse.core.expressions;bundle-version="3.4.500",
+ org.eclipse.papyrus.layers.stackmodel;bundle-version="0.10.0",
+ org.eclipse.papyrus.layers.notationmodel.edit;bundle-version="0.11.0",
+ org.eclipse.papyrus.views.modelexplorer;bundle-version="0.10.0",
+ org.eclipse.papyrus.views.properties;bundle-version="0.10.0",
+ org.eclipse.papyrus.infra.widgets;bundle-version="0.10.0",
+ org.eclipse.ui.navigator;bundle-version="3.5.300",
+ org.eclipse.gmf.runtime.notation.edit;bundle-version="1.7.0"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Vendor: %providerName
+Import-Package: org.eclipse.papyrus.layers.stackmodel.layers.provider.custom
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/about.html b/extraplugins/layers/org.eclipse.papyrus.layers.ui/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/build.properties b/extraplugins/layers/org.eclipse.papyrus.layers.ui/build.properties
new file mode 100644
index 00000000000..db22a5a01db
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/build.properties
@@ -0,0 +1,18 @@
+source.. = src/,\
+ src-fillstyle/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ icons/
+jars.compile.order = .
+src.includes = META-INF/,\
+ build.properties,\
+ icons/,\
+ plugin.xml,\
+ src/,\
+ src-fillstyle/,\
+ test/,\
+ .project,\
+ .classpath,\
+ .settings/
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/LayersStackApplication.gif b/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/LayersStackApplication.gif
new file mode 100644
index 00000000000..b4ac2ec7108
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/LayersStackApplication.gif
Binary files differ
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/layers.gif b/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/layers.gif
new file mode 100644
index 00000000000..34fb3c9d8cb
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/icons/layers.gif
Binary files differ
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.properties b/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.properties
new file mode 100644
index 00000000000..65401a4872d
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.properties
@@ -0,0 +1,12 @@
+#################################################################################
+# Copyright (c) 2013 CEA LIST.
+# 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:
+# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Initial API and implementation
+##################################################################################
+pluginName=Layers UI (Incubation)
+providerName=Eclipse Modeling Project
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.xml b/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.xml
new file mode 100644
index 00000000000..004382600d7
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/plugin.xml
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.ui.views">
+ <view
+ category="org.eclipse.papyrus.views.category"
+ class="org.eclipse.papyrus.layers3.ui.view.LayersExplorerView"
+ icon="icons/LayersStackApplication.gif"
+ id="org.eclipse.papyrus.layers.ui.view.layersexplorer"
+ name="LayersExplorer"
+ restorable="true">
+ </view>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="toolbar:org.eclipse.ui.main.toolbar">
+ <toolbar
+ id="org.eclipse.papyrus.diagram.ui.toolbar">
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.selectAssociatedElement"
+ label="Select Associated Elements"
+ style="push"
+ tooltip="Select all elements associated to the current layer">
+ </command>
+ </toolbar>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.ui.commands">
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.delete"
+ name="Delete">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.createlayer"
+ name="Create Layer">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.createregexplayer"
+ name="Create RegExp Layer">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.createtoplayeroperator"
+ name="Create Top Layer Operator">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.createstackedLayerOperator"
+ name="Create Stacked Layer Operator">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.attachPropertyToLayer"
+ name="Attach a Property to a Layer">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.attachPropertiesToLayer"
+ name="Attach Properties to a Layer">
+ </command>
+ <command
+ id="org.eclipse.papyrus.layers.ui.commands.attachDiagramViewsToLayer"
+ name="Attach Multiple Diagram Views to a Layer">
+ </command>
+ <command
+ defaultHandler="org.eclipse.papyrus.layers3.ui.commands.CreateLayerOperatorsFromParameter"
+ id="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ name="Create LayerOperators">
+ <commandParameter
+ id="org.eclipse.papyrus.layers.ui.createLayerOperator.parameters"
+ name="name"
+ optional="true"
+ values="org.eclipse.papyrus.layers3.ui.commands.LayerOperatorsParameterValues">
+ </commandParameter>
+ </command>
+ </extension>
+ <extension
+ name="Layers v3"
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.AttachLayerStackCommand"
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachLayerStack">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.DetachLayerStackCommand"
+ commandId="org.eclipse.papyrus.layers.ui.commands.detachLayerStack">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.CreateLayerHandler"
+ commandId="org.eclipse.papyrus.layers.ui.commands.createlayer">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.CreateRegExpLayerHandler"
+ commandId="org.eclipse.papyrus.layers.ui.commands.createregexplayer">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.CreateTopLayerOperatorHandler"
+ commandId="org.eclipse.papyrus.layers.ui.commands.createtoplayeroperator">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.CreateStackedLayerOperatorHandler"
+ commandId="org.eclipse.papyrus.layers.ui.commands.createstackedLayerOperator">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.AttachPropertyToLayer"
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachPropertyToLayer">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.AttachPropertyFromListToLayer"
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachPropertiesToLayer">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.AttachDiagramViewsToLayer"
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachDiagramViewsToLayer">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.CreateLayerOperatorsFromParameter"
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator">
+ </handler>
+ <handler
+ class="org.eclipse.papyrus.layers3.ui.commands.DeleteItemHandler"
+ commandId="org.eclipse.papyrus.layers.ui.commands.delete">
+ </handler>
+ </extension>
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="menu:org.eclipse.papyrus.ui.menu">
+ <menu
+ label="Layers">
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachLayerStack"
+ label="Attach Layer Stack"
+ style="push"
+ tooltip="Attach a Layer Stack to the diagram">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.detachLayerStack"
+ label="Detach Layer Stack"
+ style="push"
+ tooltip="Detach a Layer Stack to the diagram">
+ </command>
+ </menu>
+ </menuContribution>
+ <menuContribution
+ allPopups="false"
+ locationURI="popup:org.eclipse.papyrus.layers.stackmodel.ui.popupmenu">
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachLayerStack"
+ label="Attach Layer Stack"
+ style="push"
+ tooltip="Attach a Layer Stack to the diagram">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createlayer"
+ label="Create Layer"
+ style="push"
+ tooltip="Create a new Layer in selected parent">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createregexplayer"
+ label="Create a RegExp Layer"
+ style="push"
+ tooltip="Create a RegExp Layer">
+ </command>
+ <menu
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ id="org.eclipse"
+ label="Layer Operators ...">
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ label="Create Stacked Layers"
+ style="push"
+ tooltip="Create a new Stacked Layers Operator">
+ <parameter
+ name="org.eclipse.papyrus.layers.ui.createLayerOperator.parameters"
+ value="stackedLayersOperator">
+ </parameter>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ label="Create Minimum Stacked Layers"
+ style="push"
+ tooltip="Create a new Stacked Layers with Operators of type &apos;Minimum&apos; ">
+ <parameter
+ name="org.eclipse.papyrus.layers.ui.createLayerOperator.parameters"
+ value="stackedLayersOperatorMinimum">
+ </parameter>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ label="Create Maximum Stacked Layers"
+ style="push"
+ tooltip="Create a new Stacked Layers with Operators of type &apos;Maximum&apos; ">
+ <parameter
+ name="org.eclipse.papyrus.layers.ui.createLayerOperator.parameters"
+ value="stackedLayersOperatorMaximum">
+ </parameter>
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ label="Create Average Stacked Layers"
+ style="push"
+ tooltip="Create a new Stacked Layers with Operators of type &apos;Average&apos; ">
+ <parameter
+ name="org.eclipse.papyrus.layers.ui.createLayerOperator.parameters"
+ value="stackedLayersOperatorAverage">
+ </parameter>
+ </command>
+ </menu>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createtoplayeroperator"
+ label="Create Top Layer Operator"
+ style="push"
+ tooltip="Create a top Layer operator">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createstackedLayerOperator"
+ label="Create Stacked Layer Operator"
+ style="push"
+ tooltip="Create a Stacked Layer operator">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachPropertyToLayer"
+ label="Attach a Property to a Layer"
+ style="push"
+ tooltip="Attach a Property to a Layer">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachPropertiesToLayer"
+ label="Attach Properties to a Layer"
+ style="push"
+ tooltip="Attach Properties to a Layer">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachDiagramViewsToLayer"
+ label="Attach Diagram Views to a Layer"
+ style="push"
+ tooltip="Attach Multiple Diagram Views to a Layer">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.createLayerOperator"
+ label="Create Layer Operators No Param"
+ style="push">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.delete"
+ label="Delete Item"
+ style="push"
+ tooltip="Delete Selected Item">
+ </command>
+ </menuContribution>
+ <menuContribution
+ locationURI="popup:org.eclipse.gmf.runtime.diagram.ui.DiagramEditorContextMenu">
+ <menu
+ label="Layers v3">
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.attachLayerStack"
+ label="Attach Layer Stack"
+ style="push"
+ tooltip="Attach a Layer Stack to the diagram">
+ </command>
+ <command
+ commandId="org.eclipse.papyrus.layers.ui.commands.detachLayerStack"
+ label="Detach Layer Stack"
+ style="push"
+ tooltip="Detach a Layer Stack to the diagram">
+ </command>
+ </menu>
+ </menuContribution>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.views.properties.context">
+ <context
+ contextModel="properties/properties.ctx"
+ isCustomizable="true">
+ </context>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/properties.ctx b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/properties.ctx
new file mode 100644
index 00000000000..0af98d749c6
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/properties.ctx
@@ -0,0 +1,1306 @@
+<?xml version="1.0" encoding="ASCII"?>
+<contexts:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9" name="layers">
+ <tabs label="layers" id="layers" category="org.eclipse.papyrus" priority="100">
+ <sections name="Single LayerNamedStyle" sectionFile="ui/SingleLayerNamedStyle.xwt">
+ <widget href="ui/SingleLayerNamedStyle.xwt#/"/>
+ </sections>
+ <sections name="Single LayersStack" sectionFile="ui/SingleLayersStack.xwt">
+ <widget href="ui/SingleLayersStack.xwt#/"/>
+ </sections>
+ <sections name="Single LayerExpression" sectionFile="ui/SingleLayerExpression.xwt">
+ <widget href="ui/SingleLayerExpression.xwt#/"/>
+ </sections>
+ <sections name="Single ApplicationDependantElement" sectionFile="ui/SingleApplicationDependantElement.xwt">
+ <widget href="ui/SingleApplicationDependantElement.xwt#/"/>
+ </sections>
+ <sections name="Single LayersStackApplication" sectionFile="ui/SingleLayersStackApplication.xwt">
+ <widget href="ui/SingleLayersStackApplication.xwt#/"/>
+ </sections>
+ <sections name="Single FolderElement" sectionFile="ui/SingleFolderElement.xwt">
+ <widget href="ui/SingleFolderElement.xwt#/"/>
+ </sections>
+ <sections name="Single LayerStackDescriptorRegistry" sectionFile="ui/SingleLayerStackDescriptorRegistry.xwt">
+ <widget href="ui/SingleLayerStackDescriptorRegistry.xwt#/"/>
+ </sections>
+ <sections name="Single PropertyRegistry" sectionFile="ui/SinglePropertyRegistry.xwt">
+ <widget href="ui/SinglePropertyRegistry.xwt#/"/>
+ </sections>
+ <sections name="Single Property" sectionFile="ui/SingleProperty.xwt">
+ <widget href="ui/SingleProperty.xwt#/"/>
+ </sections>
+ <sections name="Single Type" sectionFile="ui/SingleType.xwt">
+ <widget href="ui/SingleType.xwt#/"/>
+ </sections>
+ <sections name="Single Metamodel" sectionFile="ui/SingleMetamodel.xwt">
+ <widget href="ui/SingleMetamodel.xwt#/"/>
+ </sections>
+ <sections name="Single TypeInstance" sectionFile="ui/SingleTypeInstance.xwt">
+ <widget href="ui/SingleTypeInstance.xwt#/"/>
+ </sections>
+ <sections name="Single ComputePropertyValueCommandItf" sectionFile="ui/SingleComputePropertyValueCommandItf.xwt">
+ <widget href="ui/SingleComputePropertyValueCommandItf.xwt#/"/>
+ </sections>
+ <sections name="Single TypeRegistry" sectionFile="ui/SingleTypeRegistry.xwt">
+ <widget href="ui/SingleTypeRegistry.xwt#/"/>
+ </sections>
+ <sections name="Single StringToTypeMap" sectionFile="ui/SingleStringToTypeMap.xwt">
+ <widget href="ui/SingleStringToTypeMap.xwt#/"/>
+ </sections>
+ <sections name="Single LayerDescriptorRegistry" sectionFile="ui/SingleLayerDescriptorRegistry.xwt">
+ <widget href="ui/SingleLayerDescriptorRegistry.xwt#/"/>
+ </sections>
+ <sections name="Single LayerDescriptor" sectionFile="ui/SingleLayerDescriptor.xwt">
+ <widget href="ui/SingleLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Single LayerApplicationFactory" sectionFile="ui/SingleLayerApplicationFactory.xwt">
+ <widget href="ui/SingleLayerApplicationFactory.xwt#/"/>
+ </sections>
+ <sections name="Single PropertySetterRegistry" sectionFile="ui/SinglePropertySetterRegistry.xwt">
+ <widget href="ui/SinglePropertySetterRegistry.xwt#/"/>
+ </sections>
+ <sections name="Single PropertySetter" sectionFile="ui/SinglePropertySetter.xwt">
+ <widget href="ui/SinglePropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single StringToPropertySetter" sectionFile="ui/SingleStringToPropertySetter.xwt">
+ <widget href="ui/SingleStringToPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single AbstractLayer" sectionFile="ui/SingleAbstractLayer.xwt">
+ <widget href="ui/SingleAbstractLayer.xwt#/"/>
+ </sections>
+ <sections name="Single StringToTypeInstanceMap" sectionFile="ui/SingleStringToTypeInstanceMap.xwt">
+ <widget href="ui/SingleStringToTypeInstanceMap.xwt#/"/>
+ </sections>
+ <sections name="Single Folder" sectionFile="ui/SingleFolder.xwt">
+ <widget href="ui/SingleFolder.xwt#/"/>
+ </sections>
+ <sections name="Single IntInstance" sectionFile="ui/SingleIntInstance.xwt">
+ <widget href="ui/SingleIntInstance.xwt#/"/>
+ </sections>
+ <sections name="Single BooleanInstance" sectionFile="ui/SingleBooleanInstance.xwt">
+ <widget href="ui/SingleBooleanInstance.xwt#/"/>
+ </sections>
+ <sections name="Single StringInstance" sectionFile="ui/SingleStringInstance.xwt">
+ <widget href="ui/SingleStringInstance.xwt#/"/>
+ </sections>
+ <sections name="Single IntType" sectionFile="ui/SingleIntType.xwt">
+ <widget href="ui/SingleIntType.xwt#/"/>
+ </sections>
+ <sections name="Single BooleanType" sectionFile="ui/SingleBooleanType.xwt">
+ <widget href="ui/SingleBooleanType.xwt#/"/>
+ </sections>
+ <sections name="Single StringType" sectionFile="ui/SingleStringType.xwt">
+ <widget href="ui/SingleStringType.xwt#/"/>
+ </sections>
+ <sections name="Single CustomType" sectionFile="ui/SingleCustomType.xwt">
+ <widget href="ui/SingleCustomType.xwt#/"/>
+ </sections>
+ <sections name="Single LayerOperator" sectionFile="ui/SingleLayerOperator.xwt">
+ <widget href="ui/SingleLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Single AbstractLayerOperator" sectionFile="ui/SingleAbstractLayerOperator.xwt">
+ <widget href="ui/SingleAbstractLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Single TopLayerOperator" sectionFile="ui/SingleTopLayerOperator.xwt">
+ <widget href="ui/SingleTopLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Single StackedLayerOperator" sectionFile="ui/SingleStackedLayerOperator.xwt">
+ <widget href="ui/SingleStackedLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Single CustomLayerOperator" sectionFile="ui/SingleCustomLayerOperator.xwt">
+ <widget href="ui/SingleCustomLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Single PropertyIndex" sectionFile="ui/SinglePropertyIndex.xwt">
+ <widget href="ui/SinglePropertyIndex.xwt#/"/>
+ </sections>
+ <sections name="Single StringToPropertyIndexMap" sectionFile="ui/SingleStringToPropertyIndexMap.xwt">
+ <widget href="ui/SingleStringToPropertyIndexMap.xwt#/"/>
+ </sections>
+ <sections name="Single SimpleLayerDescriptor" sectionFile="ui/SingleSimpleLayerDescriptor.xwt">
+ <widget href="ui/SingleSimpleLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Single RegExpLayerDescriptor" sectionFile="ui/SingleRegExpLayerDescriptor.xwt">
+ <widget href="ui/SingleRegExpLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Single NullInstance" sectionFile="ui/SingleNullInstance.xwt">
+ <widget href="ui/SingleNullInstance.xwt#/"/>
+ </sections>
+ <sections name="Single RegExpLayer" sectionFile="ui/SingleRegExpLayer.xwt">
+ <widget href="ui/SingleRegExpLayer.xwt#/"/>
+ </sections>
+ <sections name="Single Layer" sectionFile="ui/SingleLayer.xwt">
+ <widget href="ui/SingleLayer.xwt#/"/>
+ </sections>
+ <sections name="Single Color" sectionFile="ui/SingleColor.xwt">
+ <widget href="ui/SingleColor.xwt#/"/>
+ </sections>
+ <sections name="Single ColorInstance" sectionFile="ui/SingleColorInstance.xwt">
+ <widget href="ui/SingleColorInstance.xwt#/"/>
+ </sections>
+ <sections name="Single FillInstance" sectionFile="ui/SingleFillInstance.xwt">
+ <widget href="ui/SingleFillInstance.xwt#/"/>
+ </sections>
+ <sections name="Single Fill" sectionFile="ui/SingleFill.xwt">
+ <widget href="ui/SingleFill.xwt#/"/>
+ </sections>
+ <sections name="Single FillPropertySetter" sectionFile="ui/SingleFillPropertySetter.xwt">
+ <widget href="ui/SingleFillPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single IsValidPropertySetter" sectionFile="ui/SingleIsValidPropertySetter.xwt">
+ <widget href="ui/SingleIsValidPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single NullPropertySetter" sectionFile="ui/SingleNullPropertySetter.xwt">
+ <widget href="ui/SingleNullPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single LineType" sectionFile="ui/SingleLineType.xwt">
+ <widget href="ui/SingleLineType.xwt#/"/>
+ </sections>
+ <sections name="Single LineInstance" sectionFile="ui/SingleLineInstance.xwt">
+ <widget href="ui/SingleLineInstance.xwt#/"/>
+ </sections>
+ <sections name="Single LinePropertySetter" sectionFile="ui/SingleLinePropertySetter.xwt">
+ <widget href="ui/SingleLinePropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single FontPropertySetter" sectionFile="ui/SingleFontPropertySetter.xwt">
+ <widget href="ui/SingleFontPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Single FontInstance" sectionFile="ui/SingleFontInstance.xwt">
+ <widget href="ui/SingleFontInstance.xwt#/"/>
+ </sections>
+ <sections name="Single FontType" sectionFile="ui/SingleFontType.xwt">
+ <widget href="ui/SingleFontType.xwt#/"/>
+ </sections>
+ <sections name="Single IsVisiblePropertySetter" sectionFile="ui/SingleIsVisiblePropertySetter.xwt">
+ <widget href="ui/SingleIsVisiblePropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerNamedStyle" sectionFile="ui/MultipleLayerNamedStyle.xwt">
+ <widget href="ui/MultipleLayerNamedStyle.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayersStack" sectionFile="ui/MultipleLayersStack.xwt">
+ <widget href="ui/MultipleLayersStack.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerExpression" sectionFile="ui/MultipleLayerExpression.xwt">
+ <widget href="ui/MultipleLayerExpression.xwt#/"/>
+ </sections>
+ <sections name="Multiple ApplicationDependantElement" sectionFile="ui/MultipleApplicationDependantElement.xwt">
+ <widget href="ui/MultipleApplicationDependantElement.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayersStackApplication" sectionFile="ui/MultipleLayersStackApplication.xwt">
+ <widget href="ui/MultipleLayersStackApplication.xwt#/"/>
+ </sections>
+ <sections name="Multiple FolderElement" sectionFile="ui/MultipleFolderElement.xwt">
+ <widget href="ui/MultipleFolderElement.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerStackDescriptorRegistry" sectionFile="ui/MultipleLayerStackDescriptorRegistry.xwt">
+ <widget href="ui/MultipleLayerStackDescriptorRegistry.xwt#/"/>
+ </sections>
+ <sections name="Multiple PropertyRegistry" sectionFile="ui/MultiplePropertyRegistry.xwt">
+ <widget href="ui/MultiplePropertyRegistry.xwt#/"/>
+ </sections>
+ <sections name="Multiple Property" sectionFile="ui/MultipleProperty.xwt">
+ <widget href="ui/MultipleProperty.xwt#/"/>
+ </sections>
+ <sections name="Multiple Type" sectionFile="ui/MultipleType.xwt">
+ <widget href="ui/MultipleType.xwt#/"/>
+ </sections>
+ <sections name="Multiple Metamodel" sectionFile="ui/MultipleMetamodel.xwt">
+ <widget href="ui/MultipleMetamodel.xwt#/"/>
+ </sections>
+ <sections name="Multiple TypeInstance" sectionFile="ui/MultipleTypeInstance.xwt">
+ <widget href="ui/MultipleTypeInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple ComputePropertyValueCommandItf" sectionFile="ui/MultipleComputePropertyValueCommandItf.xwt">
+ <widget href="ui/MultipleComputePropertyValueCommandItf.xwt#/"/>
+ </sections>
+ <sections name="Multiple TypeRegistry" sectionFile="ui/MultipleTypeRegistry.xwt">
+ <widget href="ui/MultipleTypeRegistry.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringToTypeMap" sectionFile="ui/MultipleStringToTypeMap.xwt">
+ <widget href="ui/MultipleStringToTypeMap.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerDescriptorRegistry" sectionFile="ui/MultipleLayerDescriptorRegistry.xwt">
+ <widget href="ui/MultipleLayerDescriptorRegistry.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerDescriptor" sectionFile="ui/MultipleLayerDescriptor.xwt">
+ <widget href="ui/MultipleLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerApplicationFactory" sectionFile="ui/MultipleLayerApplicationFactory.xwt">
+ <widget href="ui/MultipleLayerApplicationFactory.xwt#/"/>
+ </sections>
+ <sections name="Multiple PropertySetterRegistry" sectionFile="ui/MultiplePropertySetterRegistry.xwt">
+ <widget href="ui/MultiplePropertySetterRegistry.xwt#/"/>
+ </sections>
+ <sections name="Multiple PropertySetter" sectionFile="ui/MultiplePropertySetter.xwt">
+ <widget href="ui/MultiplePropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringToPropertySetter" sectionFile="ui/MultipleStringToPropertySetter.xwt">
+ <widget href="ui/MultipleStringToPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple AbstractLayer" sectionFile="ui/MultipleAbstractLayer.xwt">
+ <widget href="ui/MultipleAbstractLayer.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringToTypeInstanceMap" sectionFile="ui/MultipleStringToTypeInstanceMap.xwt">
+ <widget href="ui/MultipleStringToTypeInstanceMap.xwt#/"/>
+ </sections>
+ <sections name="Multiple Folder" sectionFile="ui/MultipleFolder.xwt">
+ <widget href="ui/MultipleFolder.xwt#/"/>
+ </sections>
+ <sections name="Multiple IntInstance" sectionFile="ui/MultipleIntInstance.xwt">
+ <widget href="ui/MultipleIntInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple BooleanInstance" sectionFile="ui/MultipleBooleanInstance.xwt">
+ <widget href="ui/MultipleBooleanInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringInstance" sectionFile="ui/MultipleStringInstance.xwt">
+ <widget href="ui/MultipleStringInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple IntType" sectionFile="ui/MultipleIntType.xwt">
+ <widget href="ui/MultipleIntType.xwt#/"/>
+ </sections>
+ <sections name="Multiple BooleanType" sectionFile="ui/MultipleBooleanType.xwt">
+ <widget href="ui/MultipleBooleanType.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringType" sectionFile="ui/MultipleStringType.xwt">
+ <widget href="ui/MultipleStringType.xwt#/"/>
+ </sections>
+ <sections name="Multiple CustomType" sectionFile="ui/MultipleCustomType.xwt">
+ <widget href="ui/MultipleCustomType.xwt#/"/>
+ </sections>
+ <sections name="Multiple LayerOperator" sectionFile="ui/MultipleLayerOperator.xwt">
+ <widget href="ui/MultipleLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Multiple AbstractLayerOperator" sectionFile="ui/MultipleAbstractLayerOperator.xwt">
+ <widget href="ui/MultipleAbstractLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Multiple TopLayerOperator" sectionFile="ui/MultipleTopLayerOperator.xwt">
+ <widget href="ui/MultipleTopLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Multiple StackedLayerOperator" sectionFile="ui/MultipleStackedLayerOperator.xwt">
+ <widget href="ui/MultipleStackedLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Multiple CustomLayerOperator" sectionFile="ui/MultipleCustomLayerOperator.xwt">
+ <widget href="ui/MultipleCustomLayerOperator.xwt#/"/>
+ </sections>
+ <sections name="Multiple PropertyIndex" sectionFile="ui/MultiplePropertyIndex.xwt">
+ <widget href="ui/MultiplePropertyIndex.xwt#/"/>
+ </sections>
+ <sections name="Multiple StringToPropertyIndexMap" sectionFile="ui/MultipleStringToPropertyIndexMap.xwt">
+ <widget href="ui/MultipleStringToPropertyIndexMap.xwt#/"/>
+ </sections>
+ <sections name="Multiple SimpleLayerDescriptor" sectionFile="ui/MultipleSimpleLayerDescriptor.xwt">
+ <widget href="ui/MultipleSimpleLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Multiple RegExpLayerDescriptor" sectionFile="ui/MultipleRegExpLayerDescriptor.xwt">
+ <widget href="ui/MultipleRegExpLayerDescriptor.xwt#/"/>
+ </sections>
+ <sections name="Multiple NullInstance" sectionFile="ui/MultipleNullInstance.xwt">
+ <widget href="ui/MultipleNullInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple RegExpLayer" sectionFile="ui/MultipleRegExpLayer.xwt">
+ <widget href="ui/MultipleRegExpLayer.xwt#/"/>
+ </sections>
+ <sections name="Multiple Layer" sectionFile="ui/MultipleLayer.xwt">
+ <widget href="ui/MultipleLayer.xwt#/"/>
+ </sections>
+ <sections name="Multiple Color" sectionFile="ui/MultipleColor.xwt">
+ <widget href="ui/MultipleColor.xwt#/"/>
+ </sections>
+ <sections name="Multiple ColorInstance" sectionFile="ui/MultipleColorInstance.xwt">
+ <widget href="ui/MultipleColorInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple FillInstance" sectionFile="ui/MultipleFillInstance.xwt">
+ <widget href="ui/MultipleFillInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple Fill" sectionFile="ui/MultipleFill.xwt">
+ <widget href="ui/MultipleFill.xwt#/"/>
+ </sections>
+ <sections name="Multiple FillPropertySetter" sectionFile="ui/MultipleFillPropertySetter.xwt">
+ <widget href="ui/MultipleFillPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple IsValidPropertySetter" sectionFile="ui/MultipleIsValidPropertySetter.xwt">
+ <widget href="ui/MultipleIsValidPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple NullPropertySetter" sectionFile="ui/MultipleNullPropertySetter.xwt">
+ <widget href="ui/MultipleNullPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple LineType" sectionFile="ui/MultipleLineType.xwt">
+ <widget href="ui/MultipleLineType.xwt#/"/>
+ </sections>
+ <sections name="Multiple LineInstance" sectionFile="ui/MultipleLineInstance.xwt">
+ <widget href="ui/MultipleLineInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple LinePropertySetter" sectionFile="ui/MultipleLinePropertySetter.xwt">
+ <widget href="ui/MultipleLinePropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple FontPropertySetter" sectionFile="ui/MultipleFontPropertySetter.xwt">
+ <widget href="ui/MultipleFontPropertySetter.xwt#/"/>
+ </sections>
+ <sections name="Multiple FontInstance" sectionFile="ui/MultipleFontInstance.xwt">
+ <widget href="ui/MultipleFontInstance.xwt#/"/>
+ </sections>
+ <sections name="Multiple FontType" sectionFile="ui/MultipleFontType.xwt">
+ <widget href="ui/MultipleFontType.xwt#/"/>
+ </sections>
+ <sections name="Multiple IsVisiblePropertySetter" sectionFile="ui/MultipleIsVisiblePropertySetter.xwt">
+ <widget href="ui/MultipleIsVisiblePropertySetter.xwt#/"/>
+ </sections>
+ </tabs>
+ <views name="Single LayerNamedStyle" sections="//@tabs.0/@sections.0" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerNamedStyle">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerNamedStyle"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LayersStack" sections="//@tabs.0/@sections.1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayersStack">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayersStack"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LayerExpression" sections="//@tabs.0/@sections.2" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerExpression">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerExpression"/>
+ </constraints>
+ </views>
+ <views name="Single ApplicationDependantElement" sections="//@tabs.0/@sections.3" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleApplicationDependantElement">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ApplicationDependantElement"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LayersStackApplication" sections="//@tabs.0/@sections.4" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayersStackApplication">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayersStackApplication"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single FolderElement" sections="//@tabs.0/@sections.5" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFolderElement">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FolderElement"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LayerStackDescriptorRegistry" sections="//@tabs.0/@sections.6" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerStackDescriptorRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerStackDescriptorRegistry"/>
+ </constraints>
+ </views>
+ <views name="Single PropertyRegistry" sections="//@tabs.0/@sections.7" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSinglePropertyRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertyRegistry"/>
+ </constraints>
+ </views>
+ <views name="Single Property" sections="//@tabs.0/@sections.8" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleProperty">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Property"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single Type" sections="//@tabs.0/@sections.9" automaticContext="true" datacontexts="//@dataContexts.0/@elements.9">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Type"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single Metamodel" sections="//@tabs.0/@sections.10" automaticContext="true" datacontexts="//@dataContexts.0/@elements.10">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleMetamodel">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Metamodel"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single TypeInstance" sections="//@tabs.0/@sections.11" automaticContext="true" datacontexts="//@dataContexts.0/@elements.11">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleTypeInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TypeInstance"/>
+ </constraints>
+ </views>
+ <views name="Single ComputePropertyValueCommandItf" sections="//@tabs.0/@sections.12" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleComputePropertyValueCommandItf">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ComputePropertyValueCommandItf"/>
+ </constraints>
+ </views>
+ <views name="Single TypeRegistry" sections="//@tabs.0/@sections.13" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleTypeRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TypeRegistry"/>
+ </constraints>
+ </views>
+ <views name="Single StringToTypeMap" sections="//@tabs.0/@sections.14" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringToTypeMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToTypeMap"/>
+ </constraints>
+ </views>
+ <views name="Single LayerDescriptorRegistry" sections="//@tabs.0/@sections.15" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerDescriptorRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerDescriptorRegistry"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LayerDescriptor" sections="//@tabs.0/@sections.16" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerDescriptor"/>
+ </constraints>
+ </views>
+ <views name="Single LayerApplicationFactory" sections="//@tabs.0/@sections.17" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerApplicationFactory">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerApplicationFactory"/>
+ </constraints>
+ </views>
+ <views name="Single PropertySetterRegistry" sections="//@tabs.0/@sections.18" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSinglePropertySetterRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertySetterRegistry"/>
+ </constraints>
+ </views>
+ <views name="Single PropertySetter" sections="//@tabs.0/@sections.19" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSinglePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertySetter"/>
+ </constraints>
+ </views>
+ <views name="Single StringToPropertySetter" sections="//@tabs.0/@sections.20" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringToPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single AbstractLayer" sections="//@tabs.0/@sections.21" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleAbstractLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="AbstractLayer"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single StringToTypeInstanceMap" sections="//@tabs.0/@sections.22" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringToTypeInstanceMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToTypeInstanceMap"/>
+ </constraints>
+ </views>
+ <views name="Single Folder" sections="//@tabs.0/@sections.23" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFolder">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Folder"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single IntInstance" sections="//@tabs.0/@sections.24" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleIntInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IntInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single BooleanInstance" sections="//@tabs.0/@sections.25" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleBooleanInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="BooleanInstance"/>
+ </constraints>
+ </views>
+ <views name="Single StringInstance" sections="//@tabs.0/@sections.26" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringInstance"/>
+ </constraints>
+ </views>
+ <views name="Single IntType" sections="//@tabs.0/@sections.27" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleIntType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IntType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single BooleanType" sections="//@tabs.0/@sections.28" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleBooleanType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="BooleanType"/>
+ </constraints>
+ </views>
+ <views name="Single StringType" sections="//@tabs.0/@sections.29" automaticContext="true" datacontexts="//@dataContexts.0/@elements.29">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single CustomType" sections="//@tabs.0/@sections.30" automaticContext="true" datacontexts="//@dataContexts.0/@elements.30">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleCustomType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="CustomType"/>
+ </constraints>
+ </views>
+ <views name="Single LayerOperator" sections="//@tabs.0/@sections.31" automaticContext="true" datacontexts="//@dataContexts.0/@elements.31">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerOperator"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single AbstractLayerOperator" sections="//@tabs.0/@sections.32" automaticContext="true" datacontexts="//@dataContexts.0/@elements.32">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleAbstractLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="AbstractLayerOperator"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single TopLayerOperator" sections="//@tabs.0/@sections.33" automaticContext="true" datacontexts="//@dataContexts.0/@elements.33">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleTopLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TopLayerOperator"/>
+ </constraints>
+ </views>
+ <views name="Single StackedLayerOperator" sections="//@tabs.0/@sections.34" automaticContext="true" datacontexts="//@dataContexts.0/@elements.34">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStackedLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StackedLayerOperator"/>
+ </constraints>
+ </views>
+ <views name="Single CustomLayerOperator" sections="//@tabs.0/@sections.35" automaticContext="true" datacontexts="//@dataContexts.0/@elements.35">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleCustomLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="CustomLayerOperator"/>
+ </constraints>
+ </views>
+ <views name="Single PropertyIndex" sections="//@tabs.0/@sections.36" automaticContext="true" datacontexts="//@dataContexts.0/@elements.36">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSinglePropertyIndex">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertyIndex"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single StringToPropertyIndexMap" sections="//@tabs.0/@sections.37" automaticContext="true" datacontexts="//@dataContexts.0/@elements.37">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleStringToPropertyIndexMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertyIndexMap"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single SimpleLayerDescriptor" sections="//@tabs.0/@sections.38" automaticContext="true" datacontexts="//@dataContexts.0/@elements.38">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleSimpleLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="SimpleLayerDescriptor"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single RegExpLayerDescriptor" sections="//@tabs.0/@sections.39" automaticContext="true" datacontexts="//@dataContexts.0/@elements.39">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleRegExpLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="RegExpLayerDescriptor"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single NullInstance" sections="//@tabs.0/@sections.40" automaticContext="true" datacontexts="//@dataContexts.0/@elements.40">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleNullInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="NullInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single RegExpLayer" sections="//@tabs.0/@sections.41" automaticContext="true" datacontexts="//@dataContexts.0/@elements.41">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleRegExpLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="RegExpLayer"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single Layer" sections="//@tabs.0/@sections.42" automaticContext="true" datacontexts="//@dataContexts.0/@elements.42">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Layer"/>
+ </constraints>
+ </views>
+ <views name="Single Color" sections="//@tabs.0/@sections.43" automaticContext="true" datacontexts="//@dataContexts.0/@elements.43">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleColor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Color"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single ColorInstances" sections="//@tabs.0/@sections.44" automaticContext="true" datacontexts="//@dataContexts.0/@elements.44">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleColorInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ColorInstance"/>
+ </constraints>
+ </views>
+ <views name="Single FillInstance" sections="//@tabs.0/@sections.45" automaticContext="true" datacontexts="//@dataContexts.0/@elements.45">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFillInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FillInstance"/>
+ </constraints>
+ </views>
+ <views name="Single Fill" sections="//@tabs.0/@sections.46" automaticContext="true" datacontexts="//@dataContexts.0/@elements.46">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFill">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Fill"/>
+ </constraints>
+ </views>
+ <views name="Single FillPropertySetter" sections="//@tabs.0/@sections.47" automaticContext="true" datacontexts="//@dataContexts.0/@elements.47">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFillPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FillPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single IsValidPropertySetter" sections="//@tabs.0/@sections.48" automaticContext="true" datacontexts="//@dataContexts.0/@elements.48">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleIsValidPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IsValidPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single NullPropertySetter" sections="//@tabs.0/@sections.49" automaticContext="true" datacontexts="//@dataContexts.0/@elements.49">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleNullPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="NullPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LineType" sections="//@tabs.0/@sections.50" automaticContext="true" datacontexts="//@dataContexts.0/@elements.50">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLineType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LineType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single LineInstance" sections="//@tabs.0/@sections.51" automaticContext="true" datacontexts="//@dataContexts.0/@elements.51">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLineInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LineInstance"/>
+ </constraints>
+ </views>
+ <views name="Single LinePropertySetter" sections="//@tabs.0/@sections.52" automaticContext="true" datacontexts="//@dataContexts.0/@elements.52">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleLinePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LinePropertySetter"/>
+ </constraints>
+ </views>
+ <views name="Single FontPropertySetter" sections="//@tabs.0/@sections.53" automaticContext="true" datacontexts="//@dataContexts.0/@elements.53">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFontPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single FontInstance" sections="//@tabs.0/@sections.54" automaticContext="true" datacontexts="//@dataContexts.0/@elements.54">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFontInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single FontType" sections="//@tabs.0/@sections.55" automaticContext="true" datacontexts="//@dataContexts.0/@elements.55">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleFontType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views name="Single IsVisiblePropertySetter" sections="//@tabs.0/@sections.56" automaticContext="true" datacontexts="//@dataContexts.0/@elements.56">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isSingleIsVisiblePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IsVisiblePropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerNamedStyle" sections="//@tabs.0/@sections.57" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerNamedStyle">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerNamedStyle"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayersStack" sections="//@tabs.0/@sections.58" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayersStack">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayersStack"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerExpression" sections="//@tabs.0/@sections.59" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerExpression">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerExpression"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple ApplicationDependantElement" sections="//@tabs.0/@sections.60" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleApplicationDependantElement">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ApplicationDependantElement"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayersStackApplication" sections="//@tabs.0/@sections.61" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayersStackApplication">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayersStackApplication"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FolderElement" sections="//@tabs.0/@sections.62" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFolderElement">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FolderElement"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerStackDescriptorRegistry" sections="//@tabs.0/@sections.63" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerStackDescriptorRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerStackDescriptorRegistry"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple PropertyRegistry" sections="//@tabs.0/@sections.64" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultiplePropertyRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertyRegistry"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Property" sections="//@tabs.0/@sections.65" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleProperty">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Property"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Type" sections="//@tabs.0/@sections.66" automaticContext="true" datacontexts="//@dataContexts.0/@elements.9">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Type"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Metamodel" sections="//@tabs.0/@sections.67" automaticContext="true" datacontexts="//@dataContexts.0/@elements.10">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleMetamodel">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Metamodel"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple TypeInstance" sections="//@tabs.0/@sections.68" automaticContext="true" datacontexts="//@dataContexts.0/@elements.11">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleTypeInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TypeInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple ComputePropertyValueCommandItf" sections="//@tabs.0/@sections.69" automaticContext="true" datacontexts="//@dataContexts.0/@elements.12">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleComputePropertyValueCommandItf">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ComputePropertyValueCommandItf"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple TypeRegistry" sections="//@tabs.0/@sections.70" automaticContext="true" datacontexts="//@dataContexts.0/@elements.13">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleTypeRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TypeRegistry"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringToTypeMap" sections="//@tabs.0/@sections.71" automaticContext="true" datacontexts="//@dataContexts.0/@elements.14">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringToTypeMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToTypeMap"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerDescriptorRegistry" sections="//@tabs.0/@sections.72" automaticContext="true" datacontexts="//@dataContexts.0/@elements.15">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerDescriptorRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerDescriptorRegistry"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerDescriptor" sections="//@tabs.0/@sections.73" automaticContext="true" datacontexts="//@dataContexts.0/@elements.16">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerDescriptor"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerApplicationFactory" sections="//@tabs.0/@sections.74" automaticContext="true" datacontexts="//@dataContexts.0/@elements.17">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerApplicationFactory">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerApplicationFactory"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple PropertySetterRegistry" sections="//@tabs.0/@sections.75" automaticContext="true" datacontexts="//@dataContexts.0/@elements.18">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultiplePropertySetterRegistry">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertySetterRegistry"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple PropertySetter" sections="//@tabs.0/@sections.76" automaticContext="true" datacontexts="//@dataContexts.0/@elements.19">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultiplePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringToPropertySetter" sections="//@tabs.0/@sections.77" automaticContext="true" datacontexts="//@dataContexts.0/@elements.20">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringToPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertySetter"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple AbstractLayer" sections="//@tabs.0/@sections.78" automaticContext="true" datacontexts="//@dataContexts.0/@elements.21">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleAbstractLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="AbstractLayer"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringToTypeInstanceMap" sections="//@tabs.0/@sections.79" automaticContext="true" datacontexts="//@dataContexts.0/@elements.22">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringToTypeInstanceMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToTypeInstanceMap"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Folder" sections="//@tabs.0/@sections.80" automaticContext="true" datacontexts="//@dataContexts.0/@elements.23">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFolder">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Folder"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple IntInstance" sections="//@tabs.0/@sections.81" automaticContext="true" datacontexts="//@dataContexts.0/@elements.24">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleIntInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IntInstance"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple BooleanInstance" sections="//@tabs.0/@sections.82" automaticContext="true" datacontexts="//@dataContexts.0/@elements.25">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBooleanInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="BooleanInstance"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringInstance" sections="//@tabs.0/@sections.83" automaticContext="true" datacontexts="//@dataContexts.0/@elements.26">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple IntType" sections="//@tabs.0/@sections.84" automaticContext="true" datacontexts="//@dataContexts.0/@elements.27">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleIntType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IntType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple BooleanType" sections="//@tabs.0/@sections.85" automaticContext="true" datacontexts="//@dataContexts.0/@elements.28">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleBooleanType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="BooleanType"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringType" sections="//@tabs.0/@sections.86" automaticContext="true" datacontexts="//@dataContexts.0/@elements.29">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringType"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple CustomType" sections="//@tabs.0/@sections.87" automaticContext="true" datacontexts="//@dataContexts.0/@elements.30">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleCustomType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="CustomType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LayerOperator" sections="//@tabs.0/@sections.88" automaticContext="true" datacontexts="//@dataContexts.0/@elements.31">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LayerOperator"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple AbstractLayerOperator" sections="//@tabs.0/@sections.89" automaticContext="true" datacontexts="//@dataContexts.0/@elements.32">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleAbstractLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="AbstractLayerOperator"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple TopLayerOperator" sections="//@tabs.0/@sections.90" automaticContext="true" datacontexts="//@dataContexts.0/@elements.33">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleTopLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="TopLayerOperator"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StackedLayerOperator" sections="//@tabs.0/@sections.91" automaticContext="true" datacontexts="//@dataContexts.0/@elements.34">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStackedLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StackedLayerOperator"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple CustomLayerOperator" sections="//@tabs.0/@sections.92" automaticContext="true" datacontexts="//@dataContexts.0/@elements.35">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleCustomLayerOperator">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="CustomLayerOperator"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple PropertyIndex" sections="//@tabs.0/@sections.93" automaticContext="true" datacontexts="//@dataContexts.0/@elements.36">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultiplePropertyIndex">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="PropertyIndex"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple StringToPropertyIndexMap" sections="//@tabs.0/@sections.94" automaticContext="true" datacontexts="//@dataContexts.0/@elements.37">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleStringToPropertyIndexMap">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="StringToPropertyIndexMap"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple SimpleLayerDescriptor" sections="//@tabs.0/@sections.95" automaticContext="true" datacontexts="//@dataContexts.0/@elements.38">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleSimpleLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="SimpleLayerDescriptor"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple RegExpLayerDescriptor" sections="//@tabs.0/@sections.96" automaticContext="true" datacontexts="//@dataContexts.0/@elements.39">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleRegExpLayerDescriptor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="RegExpLayerDescriptor"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple NullInstance" sections="//@tabs.0/@sections.97" automaticContext="true" datacontexts="//@dataContexts.0/@elements.40">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleNullInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="NullInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple RegExpLayer" sections="//@tabs.0/@sections.98" automaticContext="true" datacontexts="//@dataContexts.0/@elements.41">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleRegExpLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="RegExpLayer"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Layer" sections="//@tabs.0/@sections.99" automaticContext="true" datacontexts="//@dataContexts.0/@elements.42">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLayer">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Layer"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Color" sections="//@tabs.0/@sections.100" automaticContext="true" datacontexts="//@dataContexts.0/@elements.43">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleColor">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Color"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple ColorInstance" sections="//@tabs.0/@sections.101" automaticContext="true" datacontexts="//@dataContexts.0/@elements.44">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleColorInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="ColorInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FillInstance" sections="//@tabs.0/@sections.102" automaticContext="true" datacontexts="//@dataContexts.0/@elements.45">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFillInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FillInstance"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple Fill" sections="//@tabs.0/@sections.103" automaticContext="true" datacontexts="//@dataContexts.0/@elements.46">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFill">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="Fill"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FillPropertySetter" sections="//@tabs.0/@sections.104" automaticContext="true" datacontexts="//@dataContexts.0/@elements.47">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFillPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FillPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple IsValidPropertySetter" sections="//@tabs.0/@sections.105" automaticContext="true" datacontexts="//@dataContexts.0/@elements.48">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleIsValidPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IsValidPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple NullPropertySetter" sections="//@tabs.0/@sections.106" automaticContext="true" datacontexts="//@dataContexts.0/@elements.49">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleNullPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="NullPropertySetter"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LineType" sections="//@tabs.0/@sections.107" automaticContext="true" datacontexts="//@dataContexts.0/@elements.50">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLineType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LineType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LineInstance" sections="//@tabs.0/@sections.108" automaticContext="true" datacontexts="//@dataContexts.0/@elements.51">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLineInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LineInstance"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple LinePropertySetter" sections="//@tabs.0/@sections.109" automaticContext="true" datacontexts="//@dataContexts.0/@elements.52">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleLinePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="LinePropertySetter"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FontPropertySetter" sections="//@tabs.0/@sections.110" automaticContext="true" datacontexts="//@dataContexts.0/@elements.53">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFontPropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontPropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FontInstance" sections="//@tabs.0/@sections.111" automaticContext="true" datacontexts="//@dataContexts.0/@elements.54">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFontInstance">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontInstance"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple FontType" sections="//@tabs.0/@sections.112" automaticContext="true" datacontexts="//@dataContexts.0/@elements.55">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleFontType">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="FontType"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <views elementMultiplicity="-1" name="Multiple IsVisiblePropertySetter" sections="//@tabs.0/@sections.113" automaticContext="true" datacontexts="//@dataContexts.0/@elements.56">
+ <constraints xsi:type="constraints:SimpleConstraint" name="isMultipleIsVisiblePropertySetter">
+ <constraintType href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="constraints:ValueProperty" name="className" value="IsVisiblePropertySetter"/>
+ <properties xsi:type="constraints:ValueProperty" name="nsUri" value="org.eclipse.papyrus.layers.0.10"/>
+ </constraints>
+ </views>
+ <dataContexts name="layers" label="layers">
+ <elements name="LayerNamedStyle">
+ <properties name="layersStack" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="LayersStack">
+ <properties name="layers" type="Reference"/>
+ <properties name="name"/>
+ <properties name="description"/>
+ <properties name="diagram" type="Reference"/>
+ </elements>
+ <elements name="LayerExpression" supertypes="//@dataContexts.0/@elements.3">
+ <properties name="name"/>
+ <properties name="description"/>
+ </elements>
+ <elements name="ApplicationDependantElement">
+ <properties name="application" type="Reference"/>
+ </elements>
+ <elements name="LayersStackApplication" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="layersStacks" type="Reference" multiplicity="-1"/>
+ <properties name="layerStackRegistry" type="Reference"/>
+ <properties name="propertyRegistry" type="Reference"/>
+ <properties name="layerDescriptorRegistry" type="Reference"/>
+ <properties name="factory" type="Reference"/>
+ <properties name="propertySetterRegistry" type="Reference"/>
+ </elements>
+ <elements name="FolderElement"/>
+ <elements name="LayerStackDescriptorRegistry"/>
+ <elements name="PropertyRegistry">
+ <properties name="properties" type="Reference" multiplicity="-1"/>
+ <properties name="typeRegistry" type="Reference"/>
+ </elements>
+ <elements name="Property" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="type" type="Reference"/>
+ <properties name="defaultValue" type="Reference"/>
+ <properties name="name"/>
+ <properties name="description"/>
+ <properties name="index" type="Integer"/>
+ </elements>
+ <elements name="Type" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="metamodel" type="Reference"/>
+ <properties name="name"/>
+ <properties name="description"/>
+ </elements>
+ <elements name="Metamodel" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="name"/>
+ <properties name="description"/>
+ <properties name="nsuri"/>
+ <properties name="pluginID"/>
+ <properties name="ePackageInstanceName"/>
+ <properties name="isTypeValid" type="Boolean"/>
+ </elements>
+ <elements name="TypeInstance" supertypes="//@dataContexts.0/@elements.12"/>
+ <elements name="ComputePropertyValueCommandItf"/>
+ <elements name="TypeRegistry">
+ <properties name="types" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="StringToTypeMap">
+ <properties name="value" type="Reference"/>
+ <properties name="key"/>
+ </elements>
+ <elements name="LayerDescriptorRegistry">
+ <properties name="layerDescriptors" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="LayerDescriptor">
+ <properties name="propertyRegistry" type="Reference"/>
+ </elements>
+ <elements name="LayerApplicationFactory">
+ <properties name="application" type="Reference"/>
+ </elements>
+ <elements name="PropertySetterRegistry">
+ <properties name="propertySetters" type="Reference" multiplicity="-1"/>
+ <properties name="setterMap" type="Reference" multiplicity="-1"/>
+ <properties name="application" type="Reference"/>
+ </elements>
+ <elements name="PropertySetter">
+ <properties name="property" type="Reference"/>
+ <properties name="propertyName"/>
+ </elements>
+ <elements name="StringToPropertySetter">
+ <properties name="key"/>
+ <properties name="value" type="Reference"/>
+ </elements>
+ <elements name="AbstractLayer" supertypes="//@dataContexts.0/@elements.2">
+ <properties name="propertyValues" type="Reference" multiplicity="-1"/>
+ <properties name="propertyValueMap" type="Reference" multiplicity="-1"/>
+ <properties name="layerDescriptor" type="Reference"/>
+ <properties name="views" type="Reference" multiplicity="-1"/>
+ <properties name="attachedProperties" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="StringToTypeInstanceMap">
+ <properties name="key"/>
+ <properties name="value" type="Reference"/>
+ </elements>
+ <elements name="Folder" supertypes="//@dataContexts.0/@elements.5">
+ <properties name="elements" type="Reference" multiplicity="-1"/>
+ <properties name="name"/>
+ </elements>
+ <elements name="IntInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="value" type="Integer"/>
+ </elements>
+ <elements name="BooleanInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="value" type="Boolean"/>
+ </elements>
+ <elements name="StringInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="value"/>
+ </elements>
+ <elements name="IntType" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="BooleanType" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="StringType" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="CustomType" supertypes="//@dataContexts.0/@elements.9">
+ <properties name="classifier"/>
+ </elements>
+ <elements name="LayerOperator" supertypes="//@dataContexts.0/@elements.2">
+ <properties name="layers" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="AbstractLayerOperator" supertypes="//@dataContexts.0/@elements.31"/>
+ <elements name="TopLayerOperator" supertypes="//@dataContexts.0/@elements.32"/>
+ <elements name="StackedLayerOperator" supertypes="//@dataContexts.0/@elements.32"/>
+ <elements name="CustomLayerOperator" supertypes="//@dataContexts.0/@elements.31"/>
+ <elements name="PropertyIndex">
+ <properties name="property" type="Reference"/>
+ <properties name="index" type="Integer"/>
+ </elements>
+ <elements name="StringToPropertyIndexMap">
+ <properties name="value" type="Reference"/>
+ <properties name="key"/>
+ </elements>
+ <elements name="SimpleLayerDescriptor" supertypes="//@dataContexts.0/@elements.16"/>
+ <elements name="RegExpLayerDescriptor" supertypes="//@dataContexts.0/@elements.16"/>
+ <elements name="NullInstance" supertypes="//@dataContexts.0/@elements.11"/>
+ <elements name="RegExpLayer" supertypes="//@dataContexts.0/@elements.21"/>
+ <elements name="Layer" supertypes="//@dataContexts.0/@elements.21"/>
+ <elements name="Color" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="ColorInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="value" type="Integer"/>
+ </elements>
+ <elements name="FillInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="transparency" type="Integer"/>
+ <properties name="fillColor" type="Reference"/>
+ </elements>
+ <elements name="Fill" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="FillPropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <elements name="IsValidPropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <elements name="NullPropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <elements name="LineType" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="LineInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="lineColor" type="Integer"/>
+ <properties name="lineWith" type="Integer"/>
+ </elements>
+ <elements name="LinePropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <elements name="FontPropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <elements name="FontInstance" supertypes="//@dataContexts.0/@elements.11">
+ <properties name="fontColor" type="Integer"/>
+ <properties name="fontName"/>
+ <properties name="fontHeigh" type="Integer"/>
+ <properties name="bold" type="Boolean"/>
+ </elements>
+ <elements name="FontType" supertypes="//@dataContexts.0/@elements.9"/>
+ <elements name="IsVisiblePropertySetter" supertypes="//@dataContexts.0/@elements.19"/>
+ <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.views.properties/model/Environment.xmi#//@modelElementFactories.0"/>
+ </dataContexts>
+</contexts:Context>
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayer.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayer.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayerOperator.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleAbstractLayerOperator.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleApplicationDependantElement.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleApplicationDependantElement.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleApplicationDependantElement.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanInstance.xwt
new file mode 100644
index 00000000000..1cd7e8a48aa
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanInstance.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="layers:BooleanInstance:value"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleBooleanType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColor.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColor.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColorInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColorInstance.xwt
new file mode 100644
index 00000000000..926b77f6634
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleColorInstance.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:ColorInstance:value"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleComputePropertyValueCommandItf.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleComputePropertyValueCommandItf.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleComputePropertyValueCommandItf.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomLayerOperator.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomLayerOperator.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleCustomType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFill.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFill.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFill.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillInstance.xwt
new file mode 100644
index 00000000000..09652e8422e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillInstance.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:FillInstance:transparency"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFillPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolder.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolder.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolder.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolderElement.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolderElement.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFolderElement.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontInstance.xwt
new file mode 100644
index 00000000000..3e2193f8573
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontInstance.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}" property="layers:FontInstance:bold"></ppe:BooleanRadio>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:FontInstance:fontColor"></ppe:IntegerEditor>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:FontInstance:fontHeigh"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleFontType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntInstance.xwt
new file mode 100644
index 00000000000..20bc8da72cf
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntInstance.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}" property="layers:IntInstance:value"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIntType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsValidPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsValidPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsValidPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsVisiblePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsVisiblePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleIsVisiblePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayer.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayer.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerApplicationFactory.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerApplicationFactory.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerApplicationFactory.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptor.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptor.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptorRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptorRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerDescriptorRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerExpression.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerExpression.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerExpression.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerNamedStyle.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerNamedStyle.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerNamedStyle.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerOperator.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerOperator.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerStackDescriptorRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerStackDescriptorRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayerStackDescriptorRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStack.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStack.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStack.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStackApplication.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStackApplication.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLayersStackApplication.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineInstance.xwt
new file mode 100644
index 00000000000..8a20b23bf67
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineInstance.xwt
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:LineInstance:lineColor"></ppe:IntegerEditor>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:LineInstance:lineWith"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLinePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLinePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLinePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleLineType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleMetamodel.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleMetamodel.xwt
new file mode 100644
index 00000000000..66803304566
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleMetamodel.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="layers:Metamodel:isTypeValid"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullInstance.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullInstance.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleNullPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleProperty.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleProperty.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleProperty.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyIndex.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyIndex.xwt
new file mode 100644
index 00000000000..382529a264a
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyIndex.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:PropertyIndex:index"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertyRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetterRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetterRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultiplePropertySetterRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayer.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayer.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayerDescriptor.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleRegExpLayerDescriptor.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleSimpleLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleSimpleLayerDescriptor.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleSimpleLayerDescriptor.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStackedLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStackedLayerOperator.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStackedLayerOperator.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringInstance.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringInstance.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertyIndexMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertyIndexMap.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertyIndexMap.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeInstanceMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeInstanceMap.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeInstanceMap.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeMap.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringToTypeMap.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleStringType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTopLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTopLayerOperator.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTopLayerOperator.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleType.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleType.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeInstance.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeInstance.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/MultipleTypeRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayer.xwt
new file mode 100644
index 00000000000..241b5301576
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayer.xwt
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:AbstractLayer:layerDescriptor"></ppe:ReferenceDialog>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:propertyValues"></ppe:MultiReference>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:views"></ppe:MultiReference>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayerOperator.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleAbstractLayerOperator.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleApplicationDependantElement.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleApplicationDependantElement.xwt
new file mode 100644
index 00000000000..5d683ecc16b
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleApplicationDependantElement.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanInstance.xwt
new file mode 100644
index 00000000000..1cd7e8a48aa
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanInstance.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="layers:BooleanInstance:value"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleBooleanType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColor.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColor.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColorInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColorInstance.xwt
new file mode 100644
index 00000000000..d2f56f394b7
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleColorInstance.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:j="clr-namespace:java.lang" xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:gmf="clr-namespace:org.eclipse.papyrus.infra.gmfdiag.widgets.editors">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <gmf:XWTAwareColorPicker input="{Binding}"
+ property="layers:ColorInstance:value"></gmf:XWTAwareColorPicker>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleComputePropertyValueCommandItf.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleComputePropertyValueCommandItf.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleComputePropertyValueCommandItf.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomLayerOperator.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomLayerOperator.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomType.xwt
new file mode 100644
index 00000000000..b178c5e6ef0
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleCustomType.xwt
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:CustomType:classifier"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFill.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFill.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFill.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillInstance.xwt
new file mode 100644
index 00000000000..afb5071e0f1
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillInstance.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:j="clr-namespace:java.lang"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerSpinner input="{Binding}"
+ property="layers:FillInstance:transparency"></ppe:IntegerSpinner>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFillPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolder.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolder.xwt
new file mode 100644
index 00000000000..7b700958992
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolder.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Folder:name"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolderElement.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolderElement.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFolderElement.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontInstance.xwt
new file mode 100644
index 00000000000..0ea8b303d24
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontInstance.xwt
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns:x="http://www.eclipse.org/xwt" xmlns:j="clr-namespace:java.lang"
+ xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:gmf="clr-namespace:org.eclipse.papyrus.infra.gmfdiag.widgets.editors">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <gmf:XWTAwareFontEditor input="{Binding}"
+ property="layers:FontInstance:fontName"></gmf:XWTAwareFontEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanToggle input="{Binding}" property="layers:FontInstance:bold"></ppe:BooleanToggle>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <gmf:XWTAwareColorPicker input="{Binding}"
+ property="layers:FontInstance:fontColor"></gmf:XWTAwareColorPicker>
+ <ppe:IntegerSpinner input="{Binding}"
+ property="layers:FontInstance:fontHeigh"></ppe:IntegerSpinner>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleFontType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntInstance.xwt
new file mode 100644
index 00000000000..c9aad5c394c
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntInstance.xwt
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
+ xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}" property="layers:IntInstance:value"></ppe:IntegerEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIntType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsValidPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsValidPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsValidPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsVisiblePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsVisiblePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleIsVisiblePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayer.xwt
new file mode 100644
index 00000000000..241b5301576
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayer.xwt
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:AbstractLayer:layerDescriptor"></ppe:ReferenceDialog>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:propertyValues"></ppe:MultiReference>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:views"></ppe:MultiReference>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerApplicationFactory.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerApplicationFactory.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerApplicationFactory.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptor.xwt
new file mode 100644
index 00000000000..302ba930212
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptor.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:LayerDescriptor:propertyRegistry"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptorRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptorRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerDescriptorRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerExpression.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerExpression.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerExpression.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerNamedStyle.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerNamedStyle.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerNamedStyle.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerOperator.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerOperator.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerStackDescriptorRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerStackDescriptorRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayerStackDescriptorRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStack.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStack.xwt
new file mode 100644
index 00000000000..2605c6e2fa7
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStack.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayersStack:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayersStack:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:LayersStack:diagram"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStackApplication.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStackApplication.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLayersStackApplication.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineInstance.xwt
new file mode 100644
index 00000000000..e9ea96f63e0
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineInstance.xwt
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:gmf="clr-namespace:org.eclipse.papyrus.infra.gmfdiag.widgets.editors">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <gmf:XWTAwareColorPicker input="{Binding}"
+ property="layers:LineInstance:lineColor"></gmf:XWTAwareColorPicker>
+ <ppe:IntegerSpinner input="{Binding}"
+ property="layers:LineInstance:lineWith"></ppe:IntegerSpinner>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLinePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLinePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLinePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleLineType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleMetamodel.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleMetamodel.xwt
new file mode 100644
index 00000000000..d2364686f9c
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleMetamodel.xwt
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Metamodel:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:Metamodel:description"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Metamodel:nsuri"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Metamodel:pluginID"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:Metamodel:ePackageInstanceName"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="layers:Metamodel:isTypeValid"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullInstance.xwt
new file mode 100644
index 00000000000..8d0743d63a1
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullInstance.xwt
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:j="clr-namespace:java.lang"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleNullPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleProperty.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleProperty.xwt
new file mode 100644
index 00000000000..931572a41c0
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleProperty.xwt
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Property:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Property:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}" property="layers:Property:index"></ppe:IntegerEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}" property="layers:Property:type"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyIndex.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyIndex.xwt
new file mode 100644
index 00000000000..7ba9ace2959
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyIndex.xwt
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:IntegerEditor input="{Binding}"
+ property="layers:PropertyIndex:index"></ppe:IntegerEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:PropertyIndex:property"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertyRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetterRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetterRegistry.xwt
new file mode 100644
index 00000000000..61c7f238afb
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SinglePropertySetterRegistry.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:PropertySetterRegistry:propertySetters"></ppe:MultiReference>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayer.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayer.xwt
new file mode 100644
index 00000000000..241b5301576
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayer.xwt
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:AbstractLayer:layerDescriptor"></ppe:ReferenceDialog>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:propertyValues"></ppe:MultiReference>
+ <ppe:MultiReference input="{Binding}"
+ property="layers:AbstractLayer:views"></ppe:MultiReference>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayerDescriptor.xwt
new file mode 100644
index 00000000000..302ba930212
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleRegExpLayerDescriptor.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:LayerDescriptor:propertyRegistry"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleSimpleLayerDescriptor.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleSimpleLayerDescriptor.xwt
new file mode 100644
index 00000000000..302ba930212
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleSimpleLayerDescriptor.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:LayerDescriptor:propertyRegistry"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStackedLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStackedLayerOperator.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStackedLayerOperator.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringInstance.xwt
new file mode 100644
index 00000000000..bf4d407342e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringInstance.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:StringInstance:value"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertyIndexMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertyIndexMap.xwt
new file mode 100644
index 00000000000..5b9a6644110
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertyIndexMap.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:StringToPropertyIndexMap:key"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertySetter.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertySetter.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToPropertySetter.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeInstanceMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeInstanceMap.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeInstanceMap.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeMap.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeMap.xwt
new file mode 100644
index 00000000000..c4c1ceb16ef
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringToTypeMap.xwt
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:StringToTypeMap:key"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleStringType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTopLayerOperator.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTopLayerOperator.xwt
new file mode 100644
index 00000000000..0cfb858327e
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTopLayerOperator.xwt
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:LayerExpression:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}"
+ property="layers:LayerExpression:description"></ppe:StringEditor>
+ </Composite>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:ReferenceDialog input="{Binding}"
+ property="layers:ApplicationDependantElement:application"></ppe:ReferenceDialog>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleType.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleType.xwt
new file mode 100644
index 00000000000..1ac4e00c024
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleType.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.views.properties.widgets"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:name"></ppe:StringEditor>
+ <ppe:StringEditor input="{Binding}" property="layers:Type:description"></ppe:StringEditor>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeInstance.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeInstance.xwt
new file mode 100644
index 00000000000..f010630797c
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeInstance.xwt
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt"
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeRegistry.xwt b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeRegistry.xwt
new file mode 100644
index 00000000000..89517d2ad16
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/properties/ui/SingleTypeRegistry.xwt
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite
+ xmlns:ppel="clr-namespace:org.eclipse.papyrus.views.properties.widgets.layout"
+ xmlns:j="clr-namespace:java.lang" xmlns:x="http://www.eclipse.org/xwt"
+ xmlns="http://www.eclipse.org/xwt/presentation">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+</Composite> \ No newline at end of file
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers/ui/Activator.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers/ui/Activator.java
new file mode 100644
index 00000000000..31c303e6c04
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers/ui/Activator.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers.ui;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.eclipse.papyrus.layers.ui";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractCreateLayerExpressionHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractCreateLayerExpressionHandler.java
new file mode 100644
index 00000000000..5e7d298e9e2
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractCreateLayerExpressionHandler.java
@@ -0,0 +1,110 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerOperator;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStack;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+
+public abstract class AbstractCreateLayerExpressionHandler extends AbstractLayersCommand {
+
+ /**
+ * Value used to compute new names.
+ */
+ private static int creationCount = 0;
+
+ public AbstractCreateLayerExpressionHandler() {
+ super();
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+ System.out.println( this.getClass().getSimpleName() + ".doExecute()");
+
+ if(!isEnabled(context, selections)) {
+ return;
+ }
+
+ // Get application
+ LayersStackApplication application;
+ try {
+ application = lookupLayersStackApplicationChecked(context);
+ } catch (NotFoundException e) {
+ // Silently fails
+ return;
+ } catch (org.eclipse.papyrus.infra.core.resource.NotFoundException e) {
+ // Silently fails
+ return;
+ } catch (ServiceException e) {
+ // Silently fails
+ return;
+ }
+
+
+ // Create a layer !
+ LayerExpression layer = createLayer();
+ layer.setName("layer" + creationCount++);
+ layer.setApplication(application);
+
+ System.out.println( this.getClass().getSimpleName() + ". layerCreated");
+
+ // insert layer in selected object
+ Object selection = selections.get(0);
+ if(selection instanceof LayersStack) {
+ LayersStack stack = (LayersStack)selection;
+ stack.setLayers(layer);
+ }
+ else {
+ LayerOperator operator = (LayerOperator)selection;
+ operator.getLayers().add(layer);
+ }
+
+ }
+
+ /**
+ * This method must create the Layer that will be populated and inserted in parent.
+ * @return
+ */
+ protected abstract LayerExpression createLayer();
+
+
+ /**
+ * Return true if it is possible to attach aLyerStack.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+ if( selections.size() != 1) {
+ return false;
+ }
+ Object first = selections.get(0);
+ boolean res = (first instanceof LayerOperator) || (first instanceof LayersStack);
+ System.err.println("isEnable(" + res + ")");
+ return res;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayerStackCommand.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayerStackCommand.java
new file mode 100644
index 00000000000..ad60655b08a
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayerStackCommand.java
@@ -0,0 +1,234 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForIEvaluationContext;
+import org.eclipse.papyrus.layers.runtime.NotationDiagramHelper;
+import org.eclipse.papyrus.layers.runtime.model.LayersModel;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * Base class for Commands on Layers.
+ * This class provide utility methods to find the current Layer, LayerStack, ...
+ * @author cedric dumoulin
+ *
+ */
+public abstract class AbstractLayerStackCommand extends AbstractHandler {
+
+ /**
+ * Constructor.
+ *
+ */
+ public AbstractLayerStackCommand() {
+ super();
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ * @param event
+ * @return
+ * @throws ExecutionException
+ *
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+ executeTransaction(event);
+
+ return null;
+ }
+
+ /**
+ * Execute as transaction
+ * @param event
+ */
+ private void executeTransaction(ExecutionEvent event) {
+
+ // Get requested objects
+ final NotationDiagramHelper notationDiagramHelper;
+ TransactionalEditingDomain editingDomain;
+ try {
+ IEvaluationContext context = getIEvaluationContext(event);
+ notationDiagramHelper = lookupNotationDiagramHelperChecked(context);
+ editingDomain = lookupTransactionalEditingDomain(context);
+ } catch (NotFoundException e) {
+ // silently fails
+ return;
+ } catch (ServiceException e) {
+ // silently fails
+ return;
+ }
+
+
+ Command cmd = new RecordingCommand(editingDomain, getCommandName()) {
+
+ @Override
+ protected void doExecute() {
+ AbstractLayerStackCommand.this.doExecute(notationDiagramHelper);
+ }
+
+
+ };
+
+ editingDomain.getCommandStack().execute(cmd);
+
+ }
+
+ /**
+ * Get the name used in the {@link RecordingCommand}. This name will be visible in
+ * undo/redo.
+ *
+ * @return The command name to show.
+ */
+ public abstract String getCommandName();
+
+ /**
+ * Do the execution of the command.
+ * Subclass should implements this method.
+ *
+ * @param notationDiagramHelper
+ */
+ protected abstract void doExecute(NotationDiagramHelper notationDiagramHelper);
+
+// /**
+// *
+// * @return
+// * @throws NotFoundException
+// */
+// protected LayerStackMngr lookupLayerStackMngrChecked() throws NotFoundException {
+//
+// return lookupLayersViewChecked().getLayerStackMngrChecked();
+//
+// }
+
+
+ protected IEvaluationContext getIEvaluationContext(ExecutionEvent event) throws NotFoundException {
+ try {
+ return (IEvaluationContext)event.getApplicationContext();
+ } catch (ClassCastException e) {
+ throw new NotFoundException("IEvaluationContext can't be found.");
+ }
+
+ }
+ /**
+ * Try to lookup the TransactionalEditingDomain.
+ * @return
+ * @throws ServiceException If the Editing domain can't be found.
+ */
+ protected TransactionalEditingDomain lookupTransactionalEditingDomain(IEvaluationContext context) throws ServiceException {
+
+ // Get page from the event !
+// IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+
+ return ServiceUtilsForIEvaluationContext.getInstance().getTransactionalEditingDomain(context);
+ }
+
+ /**
+ * Called by framework. Need to set the enabled flag.
+ *
+ * @see org.eclipse.core.commands.AbstractHandler#setEnabled(java.lang.Object)
+ *
+ * @param evaluationContext
+ */
+ @Override
+ public void setEnabled(Object evaluationContext) {
+
+ if( ! (evaluationContext instanceof IEvaluationContext)) {
+ setBaseEnabled(false);
+ System.out.println(getCommandName() + ".setEnabled(" + isEnabled() + ") - no context");
+ return;
+ }
+
+ IEvaluationContext context = (IEvaluationContext)evaluationContext;
+
+ try {
+ NotationDiagramHelper diagramHelper = lookupNotationDiagramHelperChecked(context);
+
+ // Ask the subclass
+ setBaseEnabled(isEnabled(diagramHelper));
+
+ } catch (ServiceException e) {
+ // Can't find ServiceRegistry: disable
+ setBaseEnabled( false);
+ } catch (NotFoundException e) {
+ // Can't find ServiceRegistry: disable
+ setBaseEnabled( false);
+ }
+
+
+ System.out.println(getCommandName() + ".setEnabled(" + isEnabled() + ")");
+ }
+
+ /**
+ * Return true if the action is enabled, false otherwise.
+ * Subclasses should implements this method. The default implementation return true.
+ * @param notationDiagramHelper
+ * @return
+ */
+ public boolean isEnabled(NotationDiagramHelper notationDiagramHelper) {
+ return true;
+ }
+
+ // /**
+ // *
+ // * @return
+ // * @throws NotFoundException
+ // */
+ // protected LayerStackMngr lookupLayerStackMngrChecked() throws NotFoundException {
+ //
+ // return lookupLayersViewChecked().getLayerStackMngrChecked();
+ //
+ // }
+
+ /**
+ * Get the notation diagram helper.
+ * This method can be used from {@link #execute(ExecutionEvent)} or {@link #setEnabled(Object)}.
+ *
+ * @return The
+ * @throws NotFoundException
+ * @throws ServiceException
+ */
+ protected NotationDiagramHelper lookupNotationDiagramHelperChecked(IEvaluationContext context) throws NotFoundException, ServiceException {
+
+
+ // Get page from the event !
+ // IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+
+ IEditorPart editor = ServiceUtilsForIEvaluationContext.getInstance().getNestedActiveIEditorPart(context);
+
+ if( ! (editor instanceof DiagramDocumentEditor) ) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+ DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor)editor;
+
+ Diagram diagram = diagramEditor.getDiagram();
+ if(diagram == null) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+
+ // Lookup the Layer model
+ LayersModel layersModel = (LayersModel)ServiceUtilsForIEvaluationContext.getInstance().getModelSet(context).getModel(LayersModel.MODEL_ID);
+ // Return a new instance of the Helper
+ return new NotationDiagramHelper(layersModel, diagram);
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayersCommand.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayersCommand.java
new file mode 100644
index 00000000000..ba7c2622b21
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AbstractLayersCommand.java
@@ -0,0 +1,356 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+
+
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.emf.utils.ServiceUtilsForIEvaluationContext;
+import org.eclipse.papyrus.layers.runtime.NotationDiagramHelper;
+import org.eclipse.papyrus.layers.runtime.model.LayersModel;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.ui.IEditorPart;
+
+/**
+ * Base class for Commands on Layers.
+ * This class provide utility methods to find the current Layer, LayerStack, ...
+ * @author cedric dumoulin
+ *
+ */
+public abstract class AbstractLayersCommand extends AbstractHandler {
+
+ /**
+ * Constructor.
+ *
+ */
+ public AbstractLayersCommand() {
+ super();
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent)
+ * @param event
+ * @return
+ * @throws ExecutionException
+ *
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ // Get requested objects
+ IEvaluationContext context;
+ List<Object> selections;
+ try {
+ context = getIEvaluationContext(event);
+ selections = getSelections(context);
+ } catch (NotFoundException e) {
+ // silently fails
+ return null;
+ }
+
+
+ // Execute the command in 3 phases
+ if (!preExecute(event, context, selections) ) {
+ return null;
+ }
+ executeTransaction(event, context, selections);
+ postExecute(event, context, selections);
+
+ return null;
+ }
+
+ /**
+ * Method call prior to doExecute
+ * This method should be overloaded by subclass wishing to initialize the command
+ * outside of the transaction.
+ *
+ * @param event
+ * @param selections
+ * @param context
+ * @return true if the doExecute() should be called, false if the command should stop
+ */
+ protected boolean preExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) throws ExecutionException {
+ return true;
+ }
+
+ /**
+ * Method call after {@link #doExecute(ExecutionEvent, IEvaluationContext, List)}
+ * This method should be overloaded by subclass wishing to do some post-processing
+ * outside of the transaction.
+ *
+ * @param event
+ * @param selections
+ * @param context
+ */
+ protected void postExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) throws ExecutionException {
+ // TODO Auto-generated method stub
+
+ }
+
+
+ /**
+ * Execute as transaction
+ * @param event
+ * @param selections
+ * @param context
+ */
+ private void executeTransaction(ExecutionEvent event, final IEvaluationContext context, final List<Object> selections) {
+
+ // Get requested objects
+ final TransactionalEditingDomain editingDomain;
+ final ExecutionEvent finalEvent = event;
+ try {
+ editingDomain = lookupTransactionalEditingDomain(context);
+ } catch (ServiceException e) {
+ // silently fails
+ return;
+ }
+
+
+ Command cmd = new RecordingCommand(editingDomain, getCommandName()) {
+
+ @Override
+ protected void doExecute() {
+ AbstractLayersCommand.this.doExecute(finalEvent, context, selections);
+ }
+
+
+ };
+
+ editingDomain.getCommandStack().execute(cmd);
+
+ }
+
+ /**
+ * get the selected objects from the context.
+ * @param context
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ protected List<Object> getSelections(IEvaluationContext context) {
+ Object sel = context.getVariable("selection");
+ if(! (sel instanceof IStructuredSelection)) {
+ return Collections.emptyList();
+ }
+
+ IStructuredSelection structuredSelection = (IStructuredSelection)sel;
+
+ return structuredSelection.toList();
+ }
+
+ /**
+ * Get the name used in the {@link RecordingCommand}. This name will be visible in
+ * undo/redo.
+ *
+ * @return The command name to show.
+ */
+ public abstract String getCommandName();
+
+ /**
+ * Do the execution of the command.
+ * Subclass should implements this method.
+ *
+ * @param notationDiagramHelper
+ */
+ protected abstract void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections);
+
+// /**
+// *
+// * @return
+// * @throws NotFoundException
+// */
+// protected LayerStackMngr lookupLayerStackMngrChecked() throws NotFoundException {
+//
+// return lookupLayersViewChecked().getLayerStackMngrChecked();
+//
+// }
+
+
+ protected IEvaluationContext getIEvaluationContext(ExecutionEvent event) throws NotFoundException {
+ try {
+ return (IEvaluationContext)event.getApplicationContext();
+ } catch (ClassCastException e) {
+ throw new NotFoundException("IEvaluationContext can't be found.");
+ }
+
+ }
+ /**
+ * Try to lookup the TransactionalEditingDomain.
+ * @return
+ * @throws ServiceException If the Editing domain can't be found.
+ */
+ protected TransactionalEditingDomain lookupTransactionalEditingDomain(IEvaluationContext context) throws ServiceException {
+
+ // Get page from the event !
+// IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+
+ return ServiceUtilsForIEvaluationContext.getInstance().getTransactionalEditingDomain(context);
+ }
+
+ /**
+ * Called by framework. Need to set the enabled flag.
+ *
+ * @see org.eclipse.core.commands.AbstractHandler#setEnabled(java.lang.Object)
+ *
+ * @param evaluationContext
+ */
+ @Override
+ public void setEnabled(Object evaluationContext) {
+
+ if( ! (evaluationContext instanceof IEvaluationContext)) {
+ setBaseEnabled(false);
+ System.out.println(getCommandName() + ".setEnabled(" + isEnabled() + ") - no context");
+ return;
+ }
+
+ IEvaluationContext context = (IEvaluationContext)evaluationContext;
+
+ List<Object> selections = getSelections(context);
+ // Ask the subclass
+ setBaseEnabled(isEnabled(context, selections));
+
+
+ System.out.println(getCommandName() + ".setEnabled(" + isEnabled() + ")");
+ }
+
+ /**
+ * Return true if the action is enabled, false otherwise.
+ * Subclasses should implements this method. The default implementation return true.
+ * @param context
+ * @return
+ */
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+ return true;
+ }
+
+ // /**
+ // *
+ // * @return
+ // * @throws NotFoundException
+ // */
+ // protected LayerStackMngr lookupLayerStackMngrChecked() throws NotFoundException {
+ //
+ // return lookupLayersViewChecked().getLayerStackMngrChecked();
+ //
+ // }
+
+ /**
+ * lookup the notation diagram helper.
+ * This method can be used from {@link #execute(ExecutionEvent)} or {@link #setEnabled(Object)}.
+ *
+ * @return The
+ * @throws NotFoundException
+ * @throws ServiceException
+ */
+ protected NotationDiagramHelper lookupNotationDiagramHelperChecked(IEvaluationContext context) throws NotFoundException, ServiceException {
+
+
+ // Get page from the event !
+// IWorkbenchPage page = HandlerUtil.getActiveWorkbenchWindow(event).getActivePage();
+
+ IEditorPart editor = ServiceUtilsForIEvaluationContext.getInstance().getNestedActiveIEditorPart(context);
+
+ if( ! (editor instanceof DiagramDocumentEditor) ) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+ DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor)editor;
+
+ Diagram diagram = diagramEditor.getDiagram();
+ if(diagram == null) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+
+ // Lookup the Layer model
+ LayersModel layersModel = (LayersModel)ServiceUtilsForIEvaluationContext.getInstance().getModelSet(context).getModel(LayersModel.MODEL_ID);
+ // Return a new instance of the Helper
+ return new NotationDiagramHelper(layersModel, diagram);
+ }
+
+ /**
+ * lookup the LayerStack application object from context..
+ * This method can be used from {@link #execute(ExecutionEvent)} or {@link #setEnabled(Object)}.
+ *
+ * @return The
+ * @throws NotFoundException
+ * @throws ServiceException
+ * @throws org.eclipse.papyrus.infra.core.resource.NotFoundException
+ */
+ protected LayersStackApplication lookupLayersStackApplicationChecked(IEvaluationContext context) throws NotFoundException, ServiceException, org.eclipse.papyrus.infra.core.resource.NotFoundException {
+
+ ModelSet modelSet = ServiceUtilsForIEvaluationContext.getInstance().getModelSet(context);
+ LayersModel model = (LayersModel)modelSet.getModelChecked(LayersModel.MODEL_ID);
+
+ return model.lookupLayerStackApplication();
+ }
+
+ // /**
+ // *
+ // * @return
+ // * @throws NotFoundException
+ // */
+ // protected LayerStackMngr lookupLayerStackMngrChecked() throws NotFoundException {
+ //
+ // return lookupLayersViewChecked().getLayerStackMngrChecked();
+ //
+ // }
+
+ /**
+ * Get the notation diagram helper.
+ * This method can be used from {@link #execute(ExecutionEvent)} or {@link #setEnabled(Object)}.
+ *
+ * @return The
+ * @throws NotFoundException
+ * @throws ServiceException
+ */
+ protected Diagram lookupNotationDiagramChecked(IEvaluationContext context) throws NotFoundException, ServiceException {
+
+ IEditorPart editor = ServiceUtilsForIEvaluationContext.getInstance().getNestedActiveIEditorPart(context);
+
+ if(!(editor instanceof DiagramDocumentEditor)) {
+ throw new NotFoundException("Selected editor do not contains Diagram"); //$NON-NLS-1$
+ }
+ DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor)editor;
+
+ Diagram diagram = diagramEditor.getDiagram();
+ if(diagram == null) {
+ throw new NotFoundException("Selected editor do not contains Diagram"); //$NON-NLS-1$
+ }
+
+ // Return a new instance of the Helper
+ return diagram;
+ }
+
+ /**
+ * Return true if the first element of the selection is instance of the specified type.
+ */
+ protected boolean selectionFirstElementInstanceOf(List<Object> selections, Class<?> type) {
+ if( selections.size() != 1) {
+ return false;
+ }
+ Object first = selections.get(0);
+ return type.isInstance(first);
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachDiagramViewsToLayer.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachDiagramViewsToLayer.java
new file mode 100644
index 00000000000..1cda3330ffc
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachDiagramViewsToLayer.java
@@ -0,0 +1,182 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.notationmodel.edit.NotationItemProviderAdapterFactory;
+import org.eclipse.papyrus.layers.stackmodel.LayersException;
+import org.eclipse.papyrus.layers.stackmodel.layers.AbstractLayer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.dialogs.CheckedTreeSelectionDialog;
+import org.eclipse.uml2.uml.edit.providers.UMLItemProviderAdapterFactory;
+
+
+/**
+ * Handler used to select multiples views to attach to the selected Layer.
+ * Property are proposed in a selectable tree.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class AttachDiagramViewsToLayer extends AbstractLayersCommand {
+
+ /**
+ * Constructor.
+ *
+ */
+ public AttachDiagramViewsToLayer() {
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Attach multiple views";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+
+ // check enable
+ if( ! isEnabled(context, selections)) {
+ return;
+ }
+
+ // Open the dialog to ask the new name
+ // TODO dialog should not be in the transaction !! put it outside !
+
+ try {
+ // Get the layer and application
+ LayersStackApplication application = lookupLayersStackApplicationChecked(context);
+ AbstractLayer layer = (AbstractLayer)getSelections(context).get(0);
+
+ // Get the diagram and the views
+ Diagram diagram = layer.getLayersStack().getDiagram();
+
+
+ // Label and content providers
+
+ AdapterFactory domainAdapterFactory = new UMLItemProviderAdapterFactory();
+ AdapterFactory adapterFactory = new NotationItemProviderAdapterFactory(domainAdapterFactory);
+ ITreeContentProvider contentProvider = new AdapterFactoryContentProvider(adapterFactory);
+ ILabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
+
+ CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(Display.getCurrent().getActiveShell(), labelProvider, contentProvider);
+
+ dialog.setTitle("Diagram Views Selection");
+ dialog.setMessage("Select Views to attach to the current layer:");
+ dialog.setInput(diagram);
+ List<View> initialSelection = layer.getViews();
+ dialog.setInitialSelections(initialSelection.toArray(new View[0]));
+
+ if(dialog.open() != Window.OK) {
+ return;
+ }
+
+ // TODO: improve algorithm:
+ // use only the two list (or arrays) of initialSelection and finalSelection
+ // Walk the first, for each element,
+ // if the element is in the second list
+ // remove element in both list (set list[i]=null)
+ // else
+ // remove element from first list
+ // At the end,
+ // initialCollection contains unsetted elements (with nulls)
+ // finalSelection contains set elements (with nulls)
+ // Walk each array/list, and skip nulls.
+
+
+
+ // Process selected Properties
+ Object[] res = dialog.getResult();
+ // Create a list from the array. No better way ...
+ // In the same time, create unchanged and set lists
+ List<View> finalSelection = new ArrayList<View>(res.length);
+ List<View> unchangedProperties = new ArrayList<View>(initialSelection.size());
+ List<View> setProperties = new ArrayList<View>(finalSelection.size());
+
+ for( Object o : res ) {
+ // Create a clone list of the result
+ finalSelection.add((View)o);
+ // Create the unchanged and set list
+ if( initialSelection.contains(o)) {
+ unchangedProperties.add((View)o);
+ }
+ else {
+ setProperties.add((View)o);
+ }
+ }
+
+ // We also need the unset list
+ // Obtain it by removing unchanged from initialSelection
+ List<View> unsetProperties = new ArrayList<View>(initialSelection);
+ unsetProperties.removeAll(unchangedProperties);
+
+ // Remove unset views
+ for( View property : unsetProperties) {
+ System.out.println("unset view " + property.getElement());
+ layer.getViews().remove(property);
+ }
+
+ // add set instances
+ for( View property : setProperties) {
+ System.out.println("set Property " + property.getElement());
+ layer.getViews().add(property);
+ }
+
+ } catch (LayersException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (org.eclipse.papyrus.infra.core.resource.NotFoundException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (ServiceException e) {
+ // silently fails
+ e.printStackTrace();
+ }
+
+
+ }
+
+ /**
+ * Return true if it is possible to attach a property.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+
+ return selectionFirstElementInstanceOf(selections, AbstractLayer.class);
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachLayerStackCommand.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachLayerStackCommand.java
new file mode 100644
index 00000000000..96c0aec9639
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachLayerStackCommand.java
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.papyrus.layers.runtime.NotationDiagramHelper;
+
+
+/**
+ * Add a layer stack to a diagram.
+ * This is performed on the current LayerStack Viewer.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class AttachLayerStackCommand extends AbstractLayerStackCommand implements IHandler {
+
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Attach Layer Stack";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#doExecute(org.eclipse.papyrus.layers.application.NotationDiagramMngr)
+ *
+ * @param notationDiagramHelper
+ */
+ @Override
+ protected void doExecute(NotationDiagramHelper notationDiagramHelper) {
+ System.out.println( this.getClass().getSimpleName() + ".doExecute()");
+ notationDiagramHelper.attachLayersStack();
+ }
+
+
+ /**
+ * Return true if it is possible to attach aLyerStack.
+ */
+ @Override
+ public boolean isEnabled(NotationDiagramHelper notationDiagramHelper) {
+ return ! notationDiagramHelper.isLayersStackAttached();
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyFromListToLayer.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyFromListToLayer.java
new file mode 100644
index 00000000000..70cf6def7a6
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyFromListToLayer.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.LayersException;
+import org.eclipse.papyrus.layers.stackmodel.layers.AbstractLayer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.papyrus.layers.stackmodel.layers.Property;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.dialogs.ListSelectionDialog;
+
+
+/**
+ * Attach a property to the selected Layer.
+ * Property are proposed in a list.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class AttachPropertyFromListToLayer extends AbstractLayersCommand {
+
+ /**
+ * Constructor.
+ *
+ */
+ public AttachPropertyFromListToLayer() {
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Attach a property";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+ // check enable
+ if( ! isEnabled(context, selections)) {
+ return;
+ }
+
+ // Open the dialog to ask the new name
+ // TODO dialog should not be in the transaction !! put it outside !
+
+ try {
+ // Get the layer and application
+ LayersStackApplication application = lookupLayersStackApplicationChecked(context);
+ AbstractLayer layer = (AbstractLayer)getSelections(context).get(0);
+
+ // Get the list of available properties
+ Property[] properties = application.getPropertyRegistry().getProperties().toArray(new Property[0]);
+
+ IStructuredContentProvider contentProvider = new MyContentProvider();
+ ILabelProvider labelProvider = new MyLabelProvider();
+
+ ListSelectionDialog dialog = new ListSelectionDialog(Display.getCurrent().getActiveShell(), properties, contentProvider, labelProvider, "Select properties to attach");
+
+ List<Property> initialSelection = layer.getAttachedProperties();
+ dialog.setInitialSelections(initialSelection.toArray(new Property[initialSelection.size()]));
+
+ if(dialog.open() != Window.OK) {
+ return;
+ }
+
+ // TODO: improve algorithm:
+ // use only the two list (or arrays) of initialSelection and finalSelection
+ // Walk the first, for each element,
+ // if the element is in the second list
+ // remove element in both list (set list[i]=null)
+ // else
+ // remove element from first list
+ // At the end,
+ // initialCollection contains unsetted elements (with nulls)
+ // finalSelection contains set elements (with nulls)
+ // Walk each array/list, and skip nulls.
+
+
+
+ // Process selected Properties
+ Object[] res = dialog.getResult();
+ // Create a list from the array. No better way ...
+ // In the same time, create unchanged and set lists
+ List<Property> finalSelection = new ArrayList<Property>(res.length);
+ List<Property> unchangedProperties = new ArrayList<Property>(initialSelection.size());
+ List<Property> setProperties = new ArrayList<Property>(finalSelection.size());
+
+ for( Object o : res ) {
+ // Create a clone list of the result
+ finalSelection.add((Property)o);
+ // Create the unchanged and set list
+ if( initialSelection.contains(o)) {
+ unchangedProperties.add((Property)o);
+ }
+ else {
+ setProperties.add((Property)o);
+ }
+ }
+
+ // We also need the unset list
+ // Obtain it by removing unchanged from initialSelection
+ List<Property> unsetProperties = new ArrayList<Property>(initialSelection);
+ unsetProperties.removeAll(unchangedProperties);
+
+ // Remove unset instances
+ for( Property property : unsetProperties) {
+ System.out.println("unset Property " + property.getName());
+ layer.removePropertyInstance(property);
+ }
+
+ // add set instances
+ for( Property property : setProperties) {
+ System.out.println("set Property " + property.getName());
+ layer.addPropertyInstance(property);
+ }
+
+ } catch (LayersException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (org.eclipse.papyrus.infra.core.resource.NotFoundException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (ServiceException e) {
+ // silently fails
+ e.printStackTrace();
+ }
+
+
+ }
+
+ /**
+ * Return true if it is possible to attach a property.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+
+ return selectionFirstElementInstanceOf(selections, AbstractLayer.class);
+ }
+
+ private class MyContentProvider implements IStructuredContentProvider {
+
+ public Object[] getElements(Object inputElement) {
+ return (Property[])inputElement;
+ }
+
+ public void dispose() {
+
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+
+ }
+
+ }
+
+ private class MyLabelProvider extends LabelProvider {
+
+
+ @Override
+ public String getText(Object element) {
+ return ((Property)element).getName();
+ }
+
+ }
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyToLayer.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyToLayer.java
new file mode 100644
index 00000000000..114ab475b9a
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/AttachPropertyToLayer.java
@@ -0,0 +1,111 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.jface.dialogs.InputDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.LayersException;
+import org.eclipse.papyrus.layers.stackmodel.layers.AbstractLayer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.papyrus.layers.stackmodel.layers.Property;
+import org.eclipse.swt.widgets.Display;
+
+
+/**
+ * Attach a property to the selected Layer
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class AttachPropertyToLayer extends AbstractLayersCommand {
+
+ /**
+ * Constructor.
+ *
+ */
+ public AttachPropertyToLayer() {
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Attach a property";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+ // check enable
+ if( ! isEnabled(context, selections)) {
+ return;
+ }
+
+ // Open the dialog to ask the new name
+ // TODO dialog should not be in the transaction !! put it outside !
+ String currentName = "";
+ String newName = null;
+ InputDialog dialog = new InputDialog(Display.getCurrent().getActiveShell(), "Attach a Property to Layer", "Enter the name of an existing property", currentName, null);
+ if(dialog.open() == Window.OK) {
+ newName = dialog.getValue();
+ if(newName == null || newName.length() <= 0) {
+ return;
+ }
+ } else {
+ // cancelled
+ return;
+ }
+
+ try {
+ LayersStackApplication application = lookupLayersStackApplicationChecked(context);
+ Property property = application.getPropertyRegistry().getProperty(newName);
+ // Get the layer
+ AbstractLayer layer = (AbstractLayer)getSelections(context).get(0);
+ layer.addPropertyInstance(property);
+ } catch (LayersException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (org.eclipse.papyrus.infra.core.resource.NotFoundException e) {
+ // silently fails
+ e.printStackTrace();
+ } catch (ServiceException e) {
+ // silently fails
+ e.printStackTrace();
+ }
+
+
+ }
+
+ /**
+ * Return true if it is possible to attach a property.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+
+ return selectionFirstElementInstanceOf(selections, AbstractLayer.class);
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerHandler.java
new file mode 100644
index 00000000000..1eaa71d6fab
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerHandler.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.papyrus.layers.stackmodel.layers.Layer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersFactory;
+
+
+/**
+ * Create a layer stack to a diagram.
+ * This is performed on the current LayerStack Viewer.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class CreateLayerHandler extends
+AbstractCreateLayerExpressionHandler implements IHandler {
+
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Create Layer";
+ }
+
+
+ /**
+ * @return
+ */
+ @Override
+ protected LayerExpression createLayer() {
+ Layer layer = LayersFactory.eINSTANCE.createLayer();
+ return layer;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerOperatorsFromParameter.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerOperatorsFromParameter.java
new file mode 100644
index 00000000000..b1552ee6f7b
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateLayerOperatorsFromParameter.java
@@ -0,0 +1,159 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.LayersException;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.papyrus.layers.stackmodel.layers.AbstractLayerOperator;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerOperator;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStack;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+
+
+/**
+ * @author cedric dumoulin
+ *
+ */
+public class CreateLayerOperatorsFromParameter extends AbstractLayersCommand {
+
+ /**
+ * Value used to compute new names.
+ */
+ private static int creationCount = 0;
+
+ /**
+ * ID of the layer to create
+ */
+ private String newLayerID;
+
+ /**
+ * the application object, if found
+ */
+ private LayersStackApplication application;
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public CreateLayerOperatorsFromParameter() {
+ super();
+ }
+
+ /**
+ * Prepare the execution of the command
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#preExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ * @return
+ * @throws ExecutionException
+ */
+ @Override
+ protected boolean preExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) throws ExecutionException {
+
+ if(!isEnabled(context, selections)) {
+ return false;
+ }
+
+ // Get command parameters
+ newLayerID = event.getParameter("org.eclipse.papyrus.layers.ui.createLayerOperator.parameters");
+ System.err.println("Create Layer Operators '" + newLayerID + "'.");
+
+ // Get application
+ try {
+ application = lookupLayersStackApplicationChecked(context);
+ } catch (NotFoundException e) {
+ // Silently fails
+ return false;
+ } catch (org.eclipse.papyrus.infra.core.resource.NotFoundException e) {
+ // Silently fails
+ return false;
+ } catch (ServiceException e) {
+ // Silently fails
+ return false;
+ }
+
+
+ return true;
+ }
+ /**
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+ System.out.println( this.getClass().getSimpleName() + ".doExecute()");
+
+ // Create a layer !
+ AbstractLayerOperator layerOperator;
+ try {
+ layerOperator = application.getLayerOperatorDescriptorRegistry().createLayerOperator(newLayerID);
+ layerOperator.setName("layer" + creationCount++);
+ layerOperator.setApplication(application);
+ } catch (LayersException e) {
+// e.printStackTrace();
+ System.err.println("Log - " + this.getClass().getName()
+ + " - " + e.getMessage());
+ return;
+ }
+
+ // insert layer in selected object
+ Object selection = selections.get(0);
+ if(selection instanceof LayersStack) {
+ LayersStack stack = (LayersStack)selection;
+ stack.setLayers(layerOperator);
+ }
+ else {
+ LayerOperator operator = (LayerOperator)selection;
+ operator.getLayers().add(layerOperator);
+ }
+
+ }
+
+ /**
+ * Return true if it is possible to attach aLyerStack.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+ if( selections.size() != 1) {
+ return false;
+ }
+ Object first = selections.get(0);
+ boolean res = (first instanceof LayerOperator) || (first instanceof LayersStack);
+ System.err.println("isEnable(" + res + ")");
+ return res;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Create Layer Operator";
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateRegExpLayerHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateRegExpLayerHandler.java
new file mode 100644
index 00000000000..5145a2e0e8d
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateRegExpLayerHandler.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.papyrus.layers.stackmodel.layers.Layer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersFactory;
+import org.eclipse.papyrus.layers.stackmodel.layers.RegExpLayer;
+
+
+/**
+ * Create a layer stack to a diagram.
+ * This is performed on the current LayerStack Viewer.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class CreateRegExpLayerHandler extends
+AbstractCreateLayerExpressionHandler implements IHandler {
+
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Create RegExp Layer";
+ }
+
+
+ /**
+ * @return
+ */
+ @Override
+ protected LayerExpression createLayer() {
+ RegExpLayer layer = LayersFactory.eINSTANCE.createRegExpLayer();
+ return layer;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateStackedLayerOperatorHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateStackedLayerOperatorHandler.java
new file mode 100644
index 00000000000..36ec20c4707
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateStackedLayerOperatorHandler.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersFactory;
+import org.eclipse.papyrus.layers.stackmodel.layers.StackedLayerOperator;
+import org.eclipse.papyrus.layers.stackmodel.layers.TopLayerOperator;
+
+
+/**
+ * Create a {@link TopLayerOperator}.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class CreateStackedLayerOperatorHandler extends AbstractCreateLayerExpressionHandler implements IHandler {
+
+ @Override
+ protected LayerExpression createLayer() {
+ StackedLayerOperator operator = LayersFactory.eINSTANCE.createStackedLayerOperator();
+ return operator;
+ }
+
+ @Override
+ public String getCommandName() {
+ return "Create Stacked Layer Operator" ;
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateTopLayerOperatorHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateTopLayerOperatorHandler.java
new file mode 100644
index 00000000000..ded1badb71d
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/CreateTopLayerOperatorHandler.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.papyrus.layers.stackmodel.layers.Layer;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerOperator;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersFactory;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStack;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.papyrus.layers.stackmodel.layers.TopLayerOperator;
+
+
+/**
+ * Create a {@link TopLayerOperator}.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class CreateTopLayerOperatorHandler extends AbstractCreateLayerExpressionHandler implements IHandler {
+
+ @Override
+ protected LayerExpression createLayer() {
+ TopLayerOperator operator = LayersFactory.eINSTANCE.createTopLayerOperator();
+ return operator;
+ }
+
+ @Override
+ public String getCommandName() {
+ return "Create Top Layer Operator" ;
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DeleteItemHandler.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DeleteItemHandler.java
new file mode 100644
index 00000000000..a48381a197c
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DeleteItemHandler.java
@@ -0,0 +1,118 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.List;
+
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayerExpression;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStack;
+
+
+/**
+ * Handle a "Delete Item" command.
+ * Use the EMF {@link RemoveCommand}
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class DeleteItemHandler extends AbstractLayersCommand {
+
+ /**
+ *
+ * Constructor.
+ *
+ */
+ public DeleteItemHandler() {
+ super();
+ }
+
+ /**
+ * Prepare the execution of the command
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#preExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ * @return
+ * @throws ExecutionException
+ */
+ @Override
+ protected boolean preExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) throws ExecutionException {
+
+ if(!isEnabled(context, selections)) {
+ return false;
+ }
+
+
+ return true;
+ }
+ /**
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#doExecute(org.eclipse.core.commands.ExecutionEvent, org.eclipse.core.expressions.IEvaluationContext, java.util.List)
+ *
+ * @param event
+ * @param context
+ * @param selections
+ */
+ @Override
+ protected void doExecute(ExecutionEvent event, IEvaluationContext context, List<Object> selections) {
+ System.out.println( this.getClass().getSimpleName() + ".doExecute()");
+
+ // insert layer in selected object
+ Object selection = selections.get(0);
+
+ TransactionalEditingDomain domain;
+ try {
+ domain = lookupTransactionalEditingDomain(context);
+ } catch (ServiceException e) {
+ // sylently fails
+ return;
+ }
+ Command removeCmd = RemoveCommand.create(domain, selection);
+ // We are already in a transaction
+ removeCmd.execute();
+
+ }
+
+ /**
+ * Delete is enable on all items except the root layer.
+ */
+ @Override
+ public boolean isEnabled(IEvaluationContext context, List<Object> selections) {
+ if( selections.size() != 1) {
+ return false;
+ }
+ Object first = selections.get(0);
+ boolean res = (first instanceof LayerExpression && ! ( ((EObject)first).eContainer() instanceof LayersStack ) );
+ return res;
+ }
+
+ /**
+ *
+ * @see org.eclipse.papyrus.layers3.ui.commands.AbstractLayersCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Create Layer Operator";
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DetachLayerStackCommand.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DetachLayerStackCommand.java
new file mode 100644
index 00000000000..70baf2d8cf2
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/DetachLayerStackCommand.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+/**
+ *
+ */
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import org.eclipse.core.commands.IHandler;
+import org.eclipse.papyrus.layers.runtime.NotationDiagramHelper;
+
+
+/**
+ * Add a layer stack to a diagram.
+ * This is performed on the current LayerStack Viewer.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class DetachLayerStackCommand extends AbstractLayerStackCommand implements IHandler {
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#getCommandName()
+ *
+ * @return
+ */
+ @Override
+ public String getCommandName() {
+ return "Detach Layer Stack";
+ }
+
+ /**
+ * @see org.eclipse.papyrus.layers2.ui.view.commands.AbstractLayerCommand#doExecute(org.eclipse.papyrus.layers.application.NotationDiagramMngr)
+ *
+ * @param notationDiagramMngr
+ */
+ @Override
+ protected void doExecute(NotationDiagramHelper notationDiagramHelper) {
+ System.out.println( this.getClass().getSimpleName() + ".doExecute()");
+ notationDiagramHelper.removeLayersStack();
+ }
+
+
+ /**
+ * Return true if it is possible to detach aLyerStack.
+ */
+ @Override
+ public boolean isEnabled(NotationDiagramHelper notationDiagramHelper) {
+ return notationDiagramHelper.isLayersStackAttached();
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/LayerOperatorsParameterValues.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/LayerOperatorsParameterValues.java
new file mode 100644
index 00000000000..9718acb6454
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/LayerOperatorsParameterValues.java
@@ -0,0 +1,50 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.commands;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.commands.IParameterValues;
+
+
+/**
+ * Class used to return a list of LayersOperator names. This names are then used
+ * to create the corresponding LayerOperator.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class LayerOperatorsParameterValues implements IParameterValues {
+
+ /**
+ * Constructor.
+ *
+ */
+ public LayerOperatorsParameterValues() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @see org.eclipse.core.commands.IParameterValues#getParameterValues()
+ *
+ * @return
+ */
+ @Override
+ public Map<String, String> getParameterValues() {
+ Map<String, String> res = new HashMap<String, String>();
+
+ res.put("Top Layer Operator", "TopLayerOperator");
+ res.put("Stacked Layer Operator", "StackedLayeroperator");
+ return res;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/package-info.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/package-info.java
new file mode 100644
index 00000000000..307b26ee907
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/commands/package-info.java
@@ -0,0 +1,15 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+/**
+ * @author dumoulin
+ *
+ */
+package org.eclipse.papyrus.layers3.ui.commands;
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayerExplorerPageBookView.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayerExplorerPageBookView.java
new file mode 100644
index 00000000000..3b193f41d4a
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayerExplorerPageBookView.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.explorer;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
+import org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview.MultiViewPageBookView;
+import org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview.ViewPartPage;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.PageBookView;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+
+
+/**
+ * A {@link PageBookView} allowing to render multiple LayerExplorerPage in one Eclipse View.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class LayerExplorerPageBookView extends MultiViewPageBookView {
+
+ /** ID of the view, as given in the plugin.xml file */
+ public static final String VIEW_ID = "org.eclipse.papyrus.views.layers.layersexplorer"; //$NON-NLS-1$
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected PageRec doCreatePage(IWorkbenchPart part) {
+
+ // part is of type IMultiDiagramEditor (because of isImportant() )
+
+ ViewPartPage page = new LayersExplorerPage();
+
+ // Init the page, and so the View
+ initPage(page, part);
+ page.createControl(getPageBook());
+ return new PageRec(part, page);
+ }
+
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Object getAdapter(Class adapter) {
+
+ if(IPropertySheetPage.class == adapter) {
+ // Do not test if tabbedPropertySheetPage is null before calling new
+ // this is managed by Eclipse which only call current method when necessary
+// return new TabbedPropertySheetPage(this);
+ }
+
+ return super.getAdapter(adapter);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getContributorId() {
+ // return Activator.PLUGIN_ID;
+ return "TreeOutlinePage"; //$NON-NLS-1$
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void gotoMarker(IMarker marker) {
+ String uriAttribute = marker.getAttribute(EValidator.URI_ATTRIBUTE, null);
+ if(uriAttribute != null) {
+ URI uri = URI.createURI(uriAttribute);
+ IViewPart viewPart = getActiveView();
+ if(viewPart instanceof ModelExplorerView) {
+ LayersExplorerView modelExplorerView = (LayersExplorerView)viewPart;
+// EditingDomain domain = modelExplorerView.getEditingDomain();
+// EObject eObject = domain.getResourceSet().getEObject(uri, false);
+// if(eObject != null) {
+// CommonViewer treeViewer = ((ModelExplorerView)viewPart).getCommonViewer();
+// // The common viewer is in fact a tree viewer
+// // bug enhancement: use function in ModelExplorerView instead of findElementForEObject
+// ModelExplorerView.reveal(Lists.newArrayList(eObject), treeViewer);
+ }
+ }
+ }
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerPage.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerPage.java
new file mode 100644
index 00000000000..f64d0e954e3
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerPage.java
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.explorer;
+
+import org.eclipse.papyrus.views.modelexplorer.ModelExplorerView;
+import org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview.ViewPartPage;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPart;
+
+
+/**
+ * A page of the {@link LayerExplorerPageBookView}.
+ * This page contains a {@link LayersExplorerView} rendering an Explorer.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class LayersExplorerPage extends ViewPartPage {
+
+ /**
+ * Constructor.
+ *
+ */
+ public LayersExplorerPage() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * Create the Viewer for the requested part.
+ * Here, create a {@link LayersExplorerView} for a Papyrus main editor.
+ *
+ * @param part
+ * The part to associate to the Viewer.
+ * @return
+ */
+ @Override
+ protected IViewPart createViewer(IWorkbenchPart part) {
+ // Part is of the right type because of call to isImportant()
+ return null;
+// return new LayersExplorerView((IMultiDiagramEditor)part);
+ }
+
+ /**
+ * Create control of the inner view
+ *
+ * @see org.eclipse.ui.part.Page#createControl(org.eclipse.swt.widgets.Composite)
+ *
+ * @param parent
+ */
+ @Override
+ public void createControl(Composite parent) {
+ getViewer().createPartControl(parent);
+ }
+
+ /**
+ * Return the control
+ *
+ * @see org.eclipse.papyrus.views.modelexplorer.core.ui.pagebookview.ViewPartPage#getControl()
+ *
+ * @return
+ */
+ @Override
+ public Control getControl() {
+ return ((ModelExplorerView)getViewer()).getControl();
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerView.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerView.java
new file mode 100644
index 00000000000..1d0d677f550
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/explorer/LayersExplorerView.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.explorer;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.part.ViewPart;
+
+
+
+/**
+ * @author dumoulin
+ *
+ */
+public class LayersExplorerView extends ViewPart {
+
+ @Override
+ public void createPartControl(Composite parent) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setFocus() {
+ // TODO Auto-generated method stub
+
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/utils/HandlersUtils.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/utils/HandlersUtils.java
new file mode 100644
index 00000000000..2230e7353ce
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/utils/HandlersUtils.java
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.utils;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtilsForWorkbenchPage;
+import org.eclipse.papyrus.layers.stackmodel.NotFoundException;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * Set of utilities methods for handlers {@link AbstractHandler}.
+ * @author cedric dumoulin
+ *
+ */
+public class HandlersUtils {
+
+ /**
+ * Constructor.
+ *
+ */
+ public HandlersUtils() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * Get the diagram associated to the currently selected editor.
+ * Throw events if no diagram is associated.
+ * <br>
+ * Warnings: This method is for handlers only. It can return unpredictable
+ * results if used during the application initialization phase.
+ *
+ * @return
+ * @throws NotFoundException
+ * @throws ServiceException
+ */
+ public Diagram getDiagramFromCurrentEditor() throws ServiceException, NotFoundException {
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ if( page == null)
+ throw new NotFoundException("No active IWorkbenchPage");
+
+ IEditorPart editor = ServiceUtilsForWorkbenchPage.getInstance().getNestedActiveIEditorPart(page);
+
+ if( ! (editor instanceof DiagramDocumentEditor) ) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+ DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor)editor;
+
+ Diagram diagram = diagramEditor.getDiagram();
+ if(diagram == null) {
+ throw new NotFoundException("Selected editor do not contains Diagram");
+ }
+
+ return diagram;
+ }
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersExplorerView.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersExplorerView.java
new file mode 100644
index 00000000000..e23a4ad6cda
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersExplorerView.java
@@ -0,0 +1,538 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.view;
+
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.papyrus.infra.core.resource.ModelSet;
+import org.eclipse.papyrus.infra.core.resource.NotFoundException;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IEditorPage;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPage;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.IPageChangedListener;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainer;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.ISashWindowsContainerChangedListener;
+import org.eclipse.papyrus.infra.core.sasheditor.editor.SashWindowsEventsProvider;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
+import org.eclipse.papyrus.layers.runtime.model.LayersModel;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStack;
+import org.eclipse.papyrus.layers.stackmodel.layers.LayersStackApplication;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.ViewPart;
+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.wb.swt.SWTResourceManager;
+
+
+/**
+ * A view showing a Layers Explorer for the currently selected Papyrus Page.
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class LayersExplorerView extends ViewPart implements ITabbedPropertySheetPageContributor {
+
+ private Label nameLabel;
+ private Label containerLabel;
+
+ protected SashWindowsEventsProvider sashEventsProvider;
+
+ protected IPageChangedListener pageChangedListener = new IPageChangedListener() {
+
+ @Override
+ public void pageChanged(IPage newPage) {
+
+ setActivePage(newPage);
+
+ }
+ };
+
+ protected ISashWindowsContainerChangedListener containerChangedListener = new ISashWindowsContainerChangedListener() {
+
+ @Override
+ public void sashWindowsContainerChanged(ISashWindowsContainer newContainer) {
+
+ setActiveSashWindowContainer(newContainer);
+ }
+ };
+
+ protected TreeViewer layersExplorerTree;
+ private DisposeListener disposeListener = new DisposeListener() {
+
+ @Override
+ public void widgetDisposed(DisposeEvent e) {
+ System.err.println(this.getClass().getName() + " is disposed !!!" + e.widget);
+
+ }
+ };
+
+ protected ISelectionChangedListener selectionChangedListener = new ISelectionChangedListener() {
+
+
+ @Override
+ public void selectionChanged(SelectionChangedEvent event) {
+ System.out.println(LayersExplorerView.this.getClass().getSimpleName()
+ + ".selectionChanged("+event.getSelection()+")" );
+
+
+ }
+ };
+ /**
+ * Constructor.
+ *
+ */
+ public LayersExplorerView() {
+ super();
+ }
+
+ /**
+ * Get the property contributor ID.
+ * This is used by the tabbed properties to identify
+ * wich parts are accepted by a property contributor.
+ * We use Papyrus id.
+ */
+ public String getContributorId() {
+ // return Activator.PLUGIN_ID;
+ return "TreeOutlinePage"; //$NON-NLS-1$
+ }
+
+ /**
+ * Init the view. Called before {@link #createPartControl(Composite)}
+ *
+ * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite)
+ *
+ * @param site
+ * @throws PartInitException
+ */
+ @Override
+ public void init(IViewSite site) throws PartInitException {
+ // TODO Auto-generated method stub
+ super.init(site);
+ }
+
+ protected void init() {
+ sashEventsProvider = new SashWindowsEventsProvider(getSite().getPage());
+
+ sashEventsProvider.addPageChangedListener(pageChangedListener);
+ sashEventsProvider.addSashWindowsContainerChangedListener(containerChangedListener);
+ // Set initials values
+
+ setActiveSashWindowContainer(sashEventsProvider.activeSashWindowsContainer());
+// setActivePage(sashEventsProvider.activeSashWindowsPage());
+ }
+
+ public void dispose() {
+
+ super.dispose();
+
+ if( sashEventsProvider != null ) {
+ sashEventsProvider.removePageChangedListener(pageChangedListener);
+ sashEventsProvider.removeSashWindowsContainerChangedListener(containerChangedListener);
+ sashEventsProvider = null;
+ }
+
+ }
+ /**
+ *
+ * @see org.eclipse.ui.part.WorkbenchPart#getAdapter(java.lang.Class)
+ *
+ * @param adapter
+ * @return
+ */
+ @Override
+ public Object getAdapter(Class adapter) {
+ if (adapter == IPropertySheetPage.class)
+ return new TabbedPropertySheetPage(this);
+ return super.getAdapter(adapter);
+ }
+
+
+ /**
+ * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ *
+ * @param parent
+ *
+ */
+ protected void createlayersExplorerTreeControl(Composite parent) {
+ // Create tree
+
+ ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+// adapterFactory.addAdapterFactory(new LayersItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new NotationItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+// AdapterFactory adapterFactory = new LayersItemProviderAdapterFactory();
+ layersExplorerTree.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+// layersExplorerTree.setContentProvider(new MyContentProvider());
+
+ layersExplorerTree.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+// layersExplorerTree.setLabelProvider(new LabelProvider());
+
+
+ }
+
+/**
+ * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+ *
+ * @param parent
+ *
+ * @wbp.parser.entryPoint
+ */
+ @Override
+public void createPartControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+
+// AdapterFactory adapterFactory = new LayersItemProviderAdapterFactory();
+ composite.setLayout(new GridLayout(1, false));
+
+ Composite headerComposite = new Composite(composite, SWT.BORDER);
+ headerComposite.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
+ headerComposite.setLayout(new GridLayout(2, false));
+
+ Label diagramNameLabel = new Label(headerComposite, SWT.NONE);
+ diagramNameLabel.setText("Diagram");
+
+ nameLabel = new Label(headerComposite, SWT.BORDER);
+ GridData gd_nameLabel = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_nameLabel.horizontalIndent = 2;
+ nameLabel.setLayoutData(gd_nameLabel);
+ nameLabel.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+ nameLabel.setText("Hello World");
+ nameLabel.setText("container");
+
+ Label containerNameLabel = new Label(headerComposite, SWT.NONE);
+ containerNameLabel.setText("Container");
+
+ containerLabel = new Label(headerComposite, SWT.BORDER);
+ GridData gd_containerLabel = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1);
+ gd_containerLabel.horizontalIndent = 2;
+ containerLabel.setLayoutData(gd_containerLabel);
+ containerLabel.setBackground(SWTResourceManager.getColor(SWT.COLOR_WHITE));
+
+ // Create tree
+// layersExplorerTree = LayersTreeViewerFactory.createLayersTreeViewer(composite, SWT.MULTI);
+ layersExplorerTree = new TreeViewer(composite, SWT.MULTI /*| SWT.H_SCROLL | SWT.V_SCROLL*/);
+ LayersTreeViewerFactory.initContentAndLabelProviders(layersExplorerTree);
+ LayersTreeViewerFactory.initContextMenuFor(getSite(), layersExplorerTree);
+ Tree tree = layersExplorerTree.getTree();
+ tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
+// createlayersExplorerTreeControl(composite);
+
+
+ // misc
+ parent.addDisposeListener(disposeListener );
+ layersExplorerTree.getTree().addDisposeListener(disposeListener );
+
+ init();
+
+ // Setup properties sheet binding
+ getViewSite().setSelectionProvider(layersExplorerTree);
+
+ layersExplorerTree.addSelectionChangedListener(selectionChangedListener);
+
+ // context menu
+// createContextMenuFor(layersExplorerTree);
+}
+
+ /**
+ * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+ *
+ */
+ @Override
+ public void setFocus() {
+ layersExplorerTree.getTree().setFocus();
+
+ }
+
+ /**
+ * @param newContainer
+ */
+ protected void setActiveSashWindowContainer(ISashWindowsContainer newContainer) {
+
+ System.err.println("setActiveSashWindowContainer(" + (newContainer!=null?newContainer:"noContainer") + ")");
+
+ setLabels(newContainer);
+ switchLayersStackLifeCycleEventListener();
+ refreshLayersExplorerTree();
+ }
+
+ /**
+ * The {@link ISashWindowsContainer} has changed.
+ * Stop listening from the old LayerStackLifeCycleEventProvider, and start listening on the
+ * new LayerStackLifeCycleEventProvider
+ */
+ private void switchLayersStackLifeCycleEventListener() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /**
+ * @param newPage
+ */
+ protected void setActivePage(IPage newPage) {
+ setActivePageLabel(newPage);
+ refreshLayersExplorerTree();
+
+// if( newPage != null) {
+// System.err.println("setActivePage(" + newPage.getPageTitle() + ")");
+// return;
+// }
+
+ }
+
+ /**
+ * Set the tree input with nothing
+ */
+ private void setEmptyTreeInput() {
+ setTreeInput(null);
+
+ }
+
+ /**
+ * Reset the tree input after a container changed event.
+ */
+ protected void resetTreeInput() {
+
+ IEditorPart editor = sashEventsProvider.activeSashWindowsContainerOwner();
+ if(editor == null) {
+ setEmptyTreeInput();
+ return;
+ }
+
+ ServicesRegistry registry = (ServicesRegistry)editor.getAdapter(ServicesRegistry.class);
+ if(registry == null) {
+ System.err.println("New editor has no ServiceRegistry");
+ setEmptyTreeInput();
+ return;
+ }
+ ModelSet modelSet;
+ try {
+ modelSet = ServiceUtils.getInstance().getModelSet(registry);
+ LayersModel model = (LayersModel)modelSet.getModelChecked(LayersModel.MODEL_ID);
+
+ Diagram currentDiagram = getCurrentDiagram();
+ if(currentDiagram==null) {
+ setEmptyTreeInput();
+ return;
+ }
+
+ LayersStackApplication application = model.lookupLayerStackApplication();
+ if(application==null) {
+ setEmptyTreeInput();
+ return;
+ }
+
+ setTreeInput(application.lookupLayersStackFor(currentDiagram));
+ layersExplorerTree.setSelection(new StructuredSelection(model.getLayerStackApplication().getLayersStacks().get(0)), true);
+
+ return;
+ } catch (ServiceException e) {
+ e.printStackTrace();
+ setEmptyTreeInput();
+ } catch (NotFoundException e) {
+ e.printStackTrace();
+ setEmptyTreeInput();
+ } catch (org.eclipse.papyrus.layers.stackmodel.NotFoundException e) {
+ setEmptyTreeInput();
+ }
+ }
+
+ /**
+ * Refresh the complete tree
+ */
+ public void refreshTreeInput() {
+ layersExplorerTree.refresh();
+ }
+
+ /**
+ * compute the currently selected diagram from the sashEventsProvider state.
+ *
+ * @return the current diagram or null if there is no diagram.
+ */
+ private Diagram getCurrentDiagram() {
+ IPage page = sashEventsProvider.activeSashWindowsPage();
+ if( ! (page instanceof IEditorPage)
+ || ! ( ((IEditorPage)page).getIEditorPart() instanceof DiagramDocumentEditor) ) {
+ return null;
+ }
+
+ DiagramDocumentEditor diagramEditor = (DiagramDocumentEditor)((IEditorPage)page).getIEditorPart();
+
+ Diagram diagram = diagramEditor.getDiagram();
+ if(diagram == null) {
+ return null;
+ }
+
+ return diagram;
+ }
+
+ /**
+ * Change the input of the tree
+ * @param layerStackApplication
+ */
+ private void setTreeInput(Object input) {
+ layersExplorerTree.setInput(input);
+ }
+
+ /**
+ * @param newContainer
+ */
+ protected void setLabels(ISashWindowsContainer newContainer) {
+ if( newContainer != null) {
+ containerLabel.setText(newContainer.toString());
+ setActivePageLabel(newContainer.getActiveSashWindowsPage());
+ }
+ else {
+ containerLabel.setText("nocontainer");
+ setActivePageLabel(null);
+ }
+ }
+
+
+ /**
+ * @param newContainer
+ */
+ protected void setSashWindowContainerLabel(ISashWindowsContainer newContainer) {
+ if( newContainer != null) {
+ containerLabel.setText(newContainer.toString());
+ }
+ else {
+ containerLabel.setText("nocontainer");
+ }
+ }
+
+ /**
+ * @param newPage
+ */
+ protected void setActivePageLabel(IPage newPage) {
+ if( newPage != null ) {
+ nameLabel.setText(newPage.getPageTitle());
+ }
+ else {
+ nameLabel.setText("nopage");
+ }
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+// contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ // getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ String menuId = "org.eclipse.papyrus.layers.stackmodel.diagram.ui.contextmenu";
+// getSite().registerContextMenu(menuId, contextMenu, new UnwrappingSelectionProvider(viewer));
+ getSite().registerContextMenu(menuId, contextMenu, viewer);
+
+// int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+// Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+// viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+// viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * Refresh the internal {@link #layersExplorerTree} according to the current LayersStack found.
+ * Lookup for the current LayerStack, and set the internal {@link #layersExplorerTree} accordingly.
+ * If a LayerStack is found, show it in the tree.
+ * Otherwise,show an empty tree
+ */
+ public void refreshLayersExplorerTree() {
+
+ LayersStack currentLayersStack = lookupCurrentLayersStack();
+ if(currentLayersStack != null) {
+ setTreeInput(currentLayersStack);
+ layersExplorerTree.setSelection(new StructuredSelection(currentLayersStack), true);
+ }
+ else
+ setEmptyTreeInput();
+ }
+
+ /**
+ * Lookup if there is a current {@link LayersStack} attached to the
+ * selected diagram.
+ * Return the {@link LayersStack} if there is one, or null if there is none.
+ *
+ * @return the current {@link LayersStack} or null.
+ */
+ private LayersStack lookupCurrentLayersStack() {
+ IEditorPart editor = sashEventsProvider.activeSashWindowsContainerOwner();
+ if(editor == null) {
+ return null;
+ }
+
+ ServicesRegistry registry = (ServicesRegistry)editor.getAdapter(ServicesRegistry.class);
+ if(registry == null) {
+ return null;
+ }
+ ModelSet modelSet;
+ try {
+ modelSet = ServiceUtils.getInstance().getModelSet(registry);
+ LayersModel model = (LayersModel)modelSet.getModelChecked(LayersModel.MODEL_ID);
+
+ Diagram currentDiagram = getCurrentDiagram();
+ if(currentDiagram==null) {
+ return null;
+ }
+
+ LayersStackApplication application = model.lookupLayerStackApplication();
+ if(application==null) {
+ return null;
+ }
+
+
+ return application.lookupLayersStackFor(currentDiagram);
+ } catch (ServiceException e) {
+ e.printStackTrace();
+ } catch (NotFoundException e) {
+ e.printStackTrace();
+ } catch (org.eclipse.papyrus.layers.stackmodel.NotFoundException e) {
+ }
+ // Not found
+ return null;
+ }
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersTreeViewerFactory.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersTreeViewerFactory.java
new file mode 100644
index 00000000000..e01f29c3930
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/LayersTreeViewerFactory.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.papyrus.layers3.ui.view;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.gmf.runtime.notation.provider.NotationItemProviderAdapterFactory;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.papyrus.layers.stackmodel.layers.provider.custom.CustomLayersItemProviderAdapterFactory;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IWorkbenchPartSite;
+
+
+/**
+ * A utility class to create LayersTreeViewer suitable to render layers as a tree.
+ *
+ *
+ *
+ * @author cedric dumoulin
+ *
+ */
+public class LayersTreeViewerFactory {
+
+ /**
+ * ID used to register the context menu.
+ */
+ static final String CONTEXT_MENU_ID = "org.eclipse.papyrus.layers.stackmodel.diagram.ui.contextmenu";
+
+ /**
+ * Create a TreeViewer suitable to render Layers as a Tree.
+ * The content and label providers are set.
+ * The context menu is not set.
+ *
+ *
+ * @return
+ */
+ static public TreeViewer createLayersTreeViewer(Composite parent, int style) {
+
+ TreeViewer layersExplorerTree = new TreeViewer(parent, style);
+
+ initContentAndLabelProviders(layersExplorerTree);
+
+ return layersExplorerTree;
+ }
+
+ /**
+ * Set appropriate Content and Label providers for the LayersTreeViewer.
+ * @param layersExplorerTree
+ */
+ protected static void initContentAndLabelProviders(TreeViewer layersExplorerTree) {
+ // Set content and label providers
+ AdapterFactory adapterFactory = createLayersTreeViewerItemProvidersFactory();
+ layersExplorerTree.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ layersExplorerTree.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ }
+
+ /**
+ * Create an AdapterFactory suitable for the LayersTreeViewer.
+ * @return
+ */
+ static public AdapterFactory createLayersTreeViewerItemProvidersFactory() {
+ ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+// adapterFactory.addAdapterFactory(new LayersItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new CustomLayersItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new NotationItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ return adapterFactory;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well as registering the menu for extension.
+ *
+ */
+ static public void initContextMenuFor(IWorkbenchPartSite site, StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ // contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ // getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ // getSite().registerContextMenu(CONTEXT_MENU_ID, contextMenu, new UnwrappingSelectionProvider(viewer));
+ site.registerContextMenu(CONTEXT_MENU_ID, contextMenu, viewer);
+
+ // int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ // Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ // viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ // viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+
+}
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/package-info.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/package-info.java
new file mode 100644
index 00000000000..fcff1919cb9
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/papyrus/layers3/ui/view/package-info.java
@@ -0,0 +1,18 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+/**
+ * The Layer Viewer is responsible of showing the Layer Stack Properties.
+ * It synchronize itself to the current selection.
+ *
+ * @author cedric dumoulin
+ *
+ */
+package org.eclipse.papyrus.layers3.ui.view;
diff --git a/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/wb/swt/SWTResourceManager.java b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/wb/swt/SWTResourceManager.java
new file mode 100644
index 00000000000..c3466c23468
--- /dev/null
+++ b/extraplugins/layers/org.eclipse.papyrus.layers.ui/src/org/eclipse/wb/swt/SWTResourceManager.java
@@ -0,0 +1,447 @@
+/*******************************************************************************
+ * Copyright (c) 2013 CEA LIST.
+ * 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:
+ * Cedric Dumoulin Cedric.dumoulin@lifl.fr
+ ******************************************************************************/
+package org.eclipse.wb.swt;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Cursor;
+import org.eclipse.swt.graphics.Font;
+import org.eclipse.swt.graphics.FontData;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager {
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Color
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+ /**
+ * Returns the system {@link Color} matching the specific ID.
+ *
+ * @param systemColorID
+ * the ID value for the color
+ * @return the system {@link Color} matching the specific ID
+ */
+ public static Color getColor(int systemColorID) {
+ Display display = Display.getCurrent();
+ return display.getSystemColor(systemColorID);
+ }
+ /**
+ * Returns a {@link Color} given its red, green and blue component values.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return the {@link Color} matching the given red, green and blue component values
+ */
+ public static Color getColor(int r, int g, int b) {
+ return getColor(new RGB(r, g, b));
+ }
+ /**
+ * Returns a {@link Color} given its RGB value.
+ *
+ * @param rgb
+ * the {@link RGB} value of the color
+ * @return the {@link Color} matching the RGB value
+ */
+ public static Color getColor(RGB rgb) {
+ Color color = m_colorMap.get(rgb);
+ if (color == null) {
+ Display display = Display.getCurrent();
+ color = new Color(display, rgb);
+ m_colorMap.put(rgb, color);
+ }
+ return color;
+ }
+ /**
+ * Dispose of all the cached {@link Color}'s.
+ */
+ public static void disposeColors() {
+ for (Color color : m_colorMap.values()) {
+ color.dispose();
+ }
+ m_colorMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps image paths to images.
+ */
+ private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+ /**
+ * Returns an {@link Image} encoded by the specified {@link InputStream}.
+ *
+ * @param stream
+ * the {@link InputStream} encoding the image data
+ * @return the {@link Image} encoded by the specified input stream
+ */
+ protected static Image getImage(InputStream stream) throws IOException {
+ try {
+ Display display = Display.getCurrent();
+ ImageData data = new ImageData(stream);
+ if (data.transparentPixel > 0) {
+ return new Image(display, data, data.getTransparencyMask());
+ }
+ return new Image(display, data);
+ } finally {
+ stream.close();
+ }
+ }
+ /**
+ * Returns an {@link Image} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(String path) {
+ Image image = m_imageMap.get(path);
+ if (image == null) {
+ try {
+ image = getImage(new FileInputStream(path));
+ m_imageMap.put(path, image);
+ } catch (Exception e) {
+ image = getMissingImage();
+ m_imageMap.put(path, image);
+ }
+ }
+ return image;
+ }
+ /**
+ * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image
+ * @param path
+ * the path to the image file, if starts with <code>'/'</code>
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(Class<?> clazz, String path) {
+ String key = clazz.getName() + '|' + path;
+ Image image = m_imageMap.get(key);
+ if (image == null) {
+ try {
+ image = getImage(clazz.getResourceAsStream(path));
+ m_imageMap.put(key, image);
+ } catch (Exception e) {
+ image = getMissingImage();
+ m_imageMap.put(key, image);
+ }
+ }
+ return image;
+ }
+ private static final int MISSING_IMAGE_SIZE = 10;
+ /**
+ * @return the small {@link Image} that can be used as placeholder for missing image.
+ */
+ private static Image getMissingImage() {
+ Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ //
+ GC gc = new GC(image);
+ gc.setBackground(getColor(SWT.COLOR_RED));
+ gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ gc.dispose();
+ //
+ return image;
+ }
+ /**
+ * Style constant for placing decorator image in top left corner of base image.
+ */
+ public static final int TOP_LEFT = 1;
+ /**
+ * Style constant for placing decorator image in top right corner of base image.
+ */
+ public static final int TOP_RIGHT = 2;
+ /**
+ * Style constant for placing decorator image in bottom left corner of base image.
+ */
+ public static final int BOTTOM_LEFT = 3;
+ /**
+ * Style constant for placing decorator image in bottom right corner of base image.
+ */
+ public static final int BOTTOM_RIGHT = 4;
+ /**
+ * Internal value.
+ */
+ protected static final int LAST_CORNER_KEY = 5;
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @return {@link Image} The resulting decorated image
+ */
+ public static Image decorateImage(Image baseImage, Image decorator) {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @param corner
+ * the corner to place decorator image
+ * @return the resulting decorated {@link Image}
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY) {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null) {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null) {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null) {
+ Rectangle bib = baseImage.getBounds();
+ Rectangle dib = decorator.getBounds();
+ //
+ result = new Image(Display.getCurrent(), bib.width, bib.height);
+ //
+ GC gc = new GC(result);
+ gc.drawImage(baseImage, 0, 0);
+ if (corner == TOP_LEFT) {
+ gc.drawImage(decorator, 0, 0);
+ } else if (corner == TOP_RIGHT) {
+ gc.drawImage(decorator, bib.width - dib.width, 0);
+ } else if (corner == BOTTOM_LEFT) {
+ gc.drawImage(decorator, 0, bib.height - dib.height);
+ } else if (corner == BOTTOM_RIGHT) {
+ gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+ }
+ gc.dispose();
+ //
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+ /**
+ * Dispose all of the cached {@link Image}'s.
+ */
+ public static void disposeImages() {
+ // dispose loaded images
+ {
+ for (Image image : m_imageMap.values()) {
+ image.dispose();
+ }
+ m_imageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++) {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null) {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
+ for (Image image : decoratedMap.values()) {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Font
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps font names to fonts.
+ */
+ private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+ /**
+ * Maps fonts to their bold versions.
+ */
+ private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+ /**
+ * Returns a {@link Font} based on its name, height and style.
+ *
+ * @param name
+ * the name of the font
+ * @param height
+ * the height of the font
+ * @param style
+ * the style of the font
+ * @return {@link Font} The font matching the name, height and style
+ */
+ public static Font getFont(String name, int height, int style) {
+ return getFont(name, height, style, false, false);
+ }
+ /**
+ * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+ * flags are also supported.
+ *
+ * @param name
+ * the name of the font
+ * @param size
+ * the size of the font
+ * @param style
+ * the style of the font
+ * @param strikeout
+ * the strikeout flag (warning: Windows only)
+ * @param underline
+ * the underline flag (warning: Windows only)
+ * @return {@link Font} The font matching the name, height, style, strikeout and underline
+ */
+ public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
+ String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+ Font font = m_fontMap.get(fontName);
+ if (font == null) {
+ FontData fontData = new FontData(name, size, style);
+ if (strikeout || underline) {
+ try {
+ Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+ Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+ if (logFont != null && logFontClass != null) {
+ if (strikeout) {
+ logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+ }
+ if (underline) {
+ logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
+ }
+ }
+ } catch (Throwable e) {
+ System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ font = new Font(Display.getCurrent(), fontData);
+ m_fontMap.put(fontName, font);
+ }
+ return font;
+ }
+ /**
+ * Returns a bold version of the given {@link Font}.
+ *
+ * @param baseFont
+ * the {@link Font} for which a bold version is desired
+ * @return the bold version of the given {@link Font}
+ */
+ public static Font getBoldFont(Font baseFont) {
+ Font font = m_fontToBoldFontMap.get(baseFont);
+ if (font == null) {
+ FontData fontDatas[] = baseFont.getFontData();
+ FontData data = fontDatas[0];
+ font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+ m_fontToBoldFontMap.put(baseFont, font);
+ }
+ return font;
+ }
+ /**
+ * Dispose all of the cached {@link Font}'s.
+ */
+ public static void disposeFonts() {
+ // clear fonts
+ for (Font font : m_fontMap.values()) {
+ font.dispose();
+ }
+ m_fontMap.clear();
+ // clear bold fonts
+ for (Font font : m_fontToBoldFontMap.values()) {
+ font.dispose();
+ }
+ m_fontToBoldFontMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // Cursor
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps IDs to cursors.
+ */
+ private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+ /**
+ * Returns the system cursor matching the specific ID.
+ *
+ * @param id
+ * int The ID value for the cursor
+ * @return Cursor The system cursor matching the specific ID
+ */
+ public static Cursor getCursor(int id) {
+ Integer key = Integer.valueOf(id);
+ Cursor cursor = m_idToCursorMap.get(key);
+ if (cursor == null) {
+ cursor = new Cursor(Display.getDefault(), id);
+ m_idToCursorMap.put(key, cursor);
+ }
+ return cursor;
+ }
+ /**
+ * Dispose all of the cached cursors.
+ */
+ public static void disposeCursors() {
+ for (Cursor cursor : m_idToCursorMap.values()) {
+ cursor.dispose();
+ }
+ m_idToCursorMap.clear();
+ }
+ ////////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ ////////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose() {
+ disposeColors();
+ disposeImages();
+ disposeFonts();
+ disposeCursors();
+ }
+}

Back to the top