Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvlorenzo2011-05-19 09:14:55 +0000
committervlorenzo2011-05-19 09:14:55 +0000
commitedbf156ebda7ae02aa7b1d3356514d8953d4da60 (patch)
treea5df101223422fd6462e4f3f20e9934a74d17004 /incoming
parent032651893ee0e941910d123a8297be7acf754e08 (diff)
downloadorg.eclipse.papyrus-edbf156ebda7ae02aa7b1d3356514d8953d4da60.tar.gz
org.eclipse.papyrus-edbf156ebda7ae02aa7b1d3356514d8953d4da60.tar.xz
org.eclipse.papyrus-edbf156ebda7ae02aa7b1d3356514d8953d4da60.zip
Share project "org.eclipse.papyrus.customization" into "svn+ssh://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.papyrus"
346384: Papyrus should provide a wizard to generate a Customization plug-in https://bugs.eclipse.org/bugs/show_bug.cgi?id=346384 C. Letavernier Contribution
Diffstat (limited to 'incoming')
-rw-r--r--incoming/org.eclipse.papyrus.customization/.classpath8
-rw-r--r--incoming/org.eclipse.papyrus.customization/.project28
-rw-r--r--incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.jdt.core.prefs8
-rw-r--r--incoming/org.eclipse.papyrus.customization/META-INF/MANIFEST.MF27
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization.ecore41
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization.genmodel43
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/Customization.ctx219
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizableElement.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizationConfiguration.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleFileBasedCustomizableElement.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleModelTemplate.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePalette.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleProfile.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePropertyView.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUICustom.xwt15
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUMLModel.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizableElement.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizationConfiguration.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleFileBasedCustomizableElement.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleModelTemplate.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePalette.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleProfile.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePropertyView.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUICustom.xwt17
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUMLModel.xwt2
-rw-r--r--incoming/org.eclipse.papyrus.customization/Model/TestConfig.xmi6
-rw-r--r--incoming/org.eclipse.papyrus.customization/about.html28
-rw-r--r--incoming/org.eclipse.papyrus.customization/build.properties17
-rw-r--r--incoming/org.eclipse.papyrus.customization/icons/papyrus.pngbin0 -> 602 bytes
-rw-r--r--incoming/org.eclipse.papyrus.customization/plugin.properties10
-rw-r--r--incoming/org.eclipse.papyrus.customization/plugin.xml37
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizableElement.java22
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationConfiguration.java73
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationFactory.java100
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationPackage.java940
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/FileBasedCustomizableElement.java53
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/ModelTemplate.java107
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Palette.java21
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Profile.java161
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/PropertyView.java21
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UICustom.java54
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UMLModel.java134
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizableElementImpl.java45
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationConfigurationImpl.java226
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationFactoryImpl.java165
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationPackageImpl.java519
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/FileBasedCustomizableElementImpl.java166
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ModelTemplateImpl.java274
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PaletteImpl.java43
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ProfileImpl.java382
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PropertyViewImpl.java43
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UICustomImpl.java166
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UMLModelImpl.java328
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationAdapterFactory.java268
-rw-r--r--incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationSwitch.java295
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/Activator.java69
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/EnvironmentExtensionFactory.java38
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ExtensionFactory.java61
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/FileBasedExtensionFactory.java125
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ModelTemplateExtensionFactory.java59
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ProfileExtensionFactory.java62
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/PropertyViewExtensionFactory.java186
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UICustomExtensionFactory.java48
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UMLModelExtensionFactory.java64
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/generator/PluginGenerator.java83
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/Messages.java53
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/messages.properties13
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/BuildEditor.java64
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ManifestEditor.java111
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/PluginEditor.java127
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ProjectEditor.java99
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CreateNewCustomizationPluginWizard.java65
-rw-r--r--incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CustomizationPage.java99
74 files changed, 6571 insertions, 0 deletions
diff --git a/incoming/org.eclipse.papyrus.customization/.classpath b/incoming/org.eclipse.papyrus.customization/.classpath
new file mode 100644
index 00000000000..afb9bb46ef3
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src-gen"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/incoming/org.eclipse.papyrus.customization/.project b/incoming/org.eclipse.papyrus.customization/.project
new file mode 100644
index 00000000000..3b441bf8191
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.customization</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/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.core.resources.prefs b/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..50865877c6b
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Wed May 11 10:19:27 CEST 2011
+eclipse.preferences.version=1
+encoding//src/org/eclipse/papyrus/customization/messages/messages.properties=ISO-8859-1
diff --git a/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.jdt.core.prefs b/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..25c28fa5176
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+#Fri Apr 15 15:31:14 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/incoming/org.eclipse.papyrus.customization/META-INF/MANIFEST.MF b/incoming/org.eclipse.papyrus.customization/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..cdfe0c54c9a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/META-INF/MANIFEST.MF
@@ -0,0 +1,27 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.customization;singleton:=true
+Bundle-Version: 0.8.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.papyrus.customization.model.customization,
+ org.eclipse.papyrus.customization.model.customization.impl,
+ org.eclipse.papyrus.customization.model.customization.util
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.ui;bundle-version="3.7.0",
+ org.eclipse.emf.ecore,
+ org.eclipse.pde;bundle-version="3.6.100",
+ org.eclipse.core.resources;bundle-version="3.7.100",
+ org.eclipse.pde.core;bundle-version="3.7.0",
+ org.eclipse.papyrus.log;bundle-version="0.8.0",
+ org.eclipse.papyrus.properties;bundle-version="0.8.0",
+ org.eclipse.pde.ui;bundle-version="3.6.100",
+ org.eclipse.ui.ide;bundle-version="3.7.0",
+ org.eclipse.papyrus.properties.model;bundle-version="0.8.0",
+ org.eclipse.ui.views.properties.tabbed;bundle-version="3.5.200",
+ org.eclipse.papyrus.widgets;bundle-version="0.8.0"
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.papyrus.customization.Activator
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization.ecore b/incoming/org.eclipse.papyrus.customization/Model/Customization.ecore
new file mode 100644
index 00000000000..2a9ac47d87d
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization.ecore
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="customization"
+ nsURI="http://www.eclipse.org/papyrus/customization" nsPrefix="custom">
+ <eClassifiers xsi:type="ecore:EClass" name="CustomizationConfiguration">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="plugin" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1"
+ eType="#//CustomizableElement" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CustomizableElement" abstract="true"/>
+ <eClassifiers xsi:type="ecore:EClass" name="FileBasedCustomizableElement" abstract="true"
+ eSuperTypes="#//CustomizableElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="file" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PropertyView" eSuperTypes="#//FileBasedCustomizableElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="UICustom" eSuperTypes="#//FileBasedCustomizableElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadByDefault" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ModelTemplate" eSuperTypes="#//FileBasedCustomizableElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Palette" eSuperTypes="#//FileBasedCustomizableElement"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Profile" eSuperTypes="#//FileBasedCustomizableElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiednames" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconpath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UMLModel" eSuperTypes="#//FileBasedCustomizableElement">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="iconpath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="provider" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization.genmodel b/incoming/org.eclipse.papyrus.customization/Model/Customization.genmodel
new file mode 100644
index 00000000000..f8c014ceb0d
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization.genmodel
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.papyrus.customization/src-gen"
+ editDirectory="/org.eclipse.papyrus.customization.edit/src-gen" editorDirectory="/org.eclipse.papyrus.customization.editor/src-gen"
+ modelPluginID="org.eclipse.papyrus.customization" modelName="Customization" testsDirectory="/org.eclipse.papyrus.customization.tests/src-gen"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false">
+ <foreignModel>Customization.ecore</foreignModel>
+ <genPackages prefix="Customization" basePackage="org.eclipse.papyrus.customization.model"
+ disposableProviderFactory="true" ecorePackage="Customization.ecore#/">
+ <genClasses ecoreClass="Customization.ecore#//CustomizationConfiguration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//CustomizationConfiguration/plugin"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Customization.ecore#//CustomizationConfiguration/elements"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="Customization.ecore#//CustomizableElement"/>
+ <genClasses ecoreClass="Customization.ecore#//FileBasedCustomizableElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//FileBasedCustomizableElement/file"/>
+ </genClasses>
+ <genClasses ecoreClass="Customization.ecore#//PropertyView"/>
+ <genClasses ecoreClass="Customization.ecore#//UICustom">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//UICustom/loadByDefault"/>
+ </genClasses>
+ <genClasses ecoreClass="Customization.ecore#//ModelTemplate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//ModelTemplate/language"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//ModelTemplate/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//ModelTemplate/id"/>
+ </genClasses>
+ <genClasses ecoreClass="Customization.ecore#//Palette"/>
+ <genClasses ecoreClass="Customization.ecore#//Profile">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//Profile/qualifiednames"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//Profile/iconpath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//Profile/description"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//Profile/provider"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//Profile/name"/>
+ </genClasses>
+ <genClasses ecoreClass="Customization.ecore#//UMLModel">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//UMLModel/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//UMLModel/iconpath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//UMLModel/description"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Customization.ecore#//UMLModel/provider"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/Customization.ctx b/incoming/org.eclipse.papyrus.customization/Model/Customization/Customization.ctx
new file mode 100644
index 00000000000..c0bbafcfb4f
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/Customization.ctx
@@ -0,0 +1,219 @@
+<?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:contexts="http://www.eclipse.org/papyrus/properties/contexts" name="customization">
+ <tabs label="Default" id="default" category="default">
+ <sections name="Single CustomizationConfiguration" sectionFile="ui/SingleCustomizationConfiguration.xwt">
+ <widget href="ui/SingleCustomizationConfiguration.xwt#/"/>
+ </sections>
+ <sections name="Single CustomizableElement" sectionFile="ui/SingleCustomizableElement.xwt">
+ <widget href="ui/SingleCustomizableElement.xwt#/"/>
+ </sections>
+ <sections name="Single FileBasedCustomizableElement" sectionFile="ui/SingleFileBasedCustomizableElement.xwt">
+ <widget href="ui/SingleFileBasedCustomizableElement.xwt#/"/>
+ </sections>
+ <sections name="Single PropertyView" sectionFile="ui/SinglePropertyView.xwt">
+ <widget href="ui/SinglePropertyView.xwt#/"/>
+ </sections>
+ <sections name="Single UICustom" sectionFile="ui/SingleUICustom.xwt">
+ <widget href="ui/SingleUICustom.xwt#/"/>
+ </sections>
+ <sections name="Single ModelTemplate" sectionFile="ui/SingleModelTemplate.xwt">
+ <widget href="ui/SingleModelTemplate.xwt#/"/>
+ </sections>
+ <sections name="Single Palette" sectionFile="ui/SinglePalette.xwt">
+ <widget href="ui/SinglePalette.xwt#/"/>
+ </sections>
+ <sections name="Single Profile" sectionFile="ui/SingleProfile.xwt">
+ <widget href="ui/SingleProfile.xwt#/"/>
+ </sections>
+ <sections name="Single UMLModel" sectionFile="ui/SingleUMLModel.xwt">
+ <widget href="ui/SingleUMLModel.xwt#/"/>
+ </sections>
+ <sections name="Multiple CustomizationConfiguration" sectionFile="ui/MultipleCustomizationConfiguration.xwt">
+ <widget href="ui/MultipleCustomizationConfiguration.xwt#/"/>
+ </sections>
+ <sections name="Multiple CustomizableElement" sectionFile="ui/MultipleCustomizableElement.xwt">
+ <widget href="ui/MultipleCustomizableElement.xwt#/"/>
+ </sections>
+ <sections name="Multiple FileBasedCustomizableElement" sectionFile="ui/MultipleFileBasedCustomizableElement.xwt">
+ <widget href="ui/MultipleFileBasedCustomizableElement.xwt#/"/>
+ </sections>
+ <sections name="Multiple PropertyView" sectionFile="ui/MultiplePropertyView.xwt">
+ <widget href="ui/MultiplePropertyView.xwt#/"/>
+ </sections>
+ <sections name="Multiple UICustom" sectionFile="ui/MultipleUICustom.xwt">
+ <widget href="ui/MultipleUICustom.xwt#/"/>
+ </sections>
+ <sections name="Multiple ModelTemplate" sectionFile="ui/MultipleModelTemplate.xwt">
+ <widget href="ui/MultipleModelTemplate.xwt#/"/>
+ </sections>
+ <sections name="Multiple Palette" sectionFile="ui/MultiplePalette.xwt">
+ <widget href="ui/MultiplePalette.xwt#/"/>
+ </sections>
+ <sections name="Multiple Profile" sectionFile="ui/MultipleProfile.xwt">
+ <widget href="ui/MultipleProfile.xwt#/"/>
+ </sections>
+ <sections name="Multiple UMLModel" sectionFile="ui/MultipleUMLModel.xwt">
+ <widget href="ui/MultipleUMLModel.xwt#/"/>
+ </sections>
+ </tabs>
+ <views name="Single CustomizationConfiguration" sections="//@tabs.0/@sections.0" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleCustomizationConfiguration">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="CustomizationConfiguration"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Single CustomizableElement" sections="//@tabs.0/@sections.1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleCustomizableElement">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="CustomizableElement"/>
+ </constraints>
+ </views>
+ <views name="Single FileBasedCustomizableElement" sections="//@tabs.0/@sections.2" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleFileBasedCustomizableElement">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="FileBasedCustomizableElement"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Single PropertyView" sections="//@tabs.0/@sections.3" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSinglePropertyView">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="PropertyView"/>
+ </constraints>
+ </views>
+ <views name="Single UICustom" sections="//@tabs.0/@sections.4" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleUICustom">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="UICustom"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Single ModelTemplate" sections="//@tabs.0/@sections.5" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleModelTemplate">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="ModelTemplate"/>
+ </constraints>
+ </views>
+ <views name="Single Palette" sections="//@tabs.0/@sections.6" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSinglePalette">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="Palette"/>
+ </constraints>
+ </views>
+ <views name="Single Profile" sections="//@tabs.0/@sections.7" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleProfile">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="Profile"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Single UMLModel" sections="//@tabs.0/@sections.8" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isSingleUMLModel">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="UMLModel"/>
+ </constraints>
+ </views>
+ <views name="Multiple CustomizationConfiguration" sections="//@tabs.0/@sections.9" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.0">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleCustomizationConfiguration">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="CustomizationConfiguration"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Multiple CustomizableElement" sections="//@tabs.0/@sections.10" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.1">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleCustomizableElement">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="CustomizableElement"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Multiple FileBasedCustomizableElement" sections="//@tabs.0/@sections.11" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.2">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleFileBasedCustomizableElement">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="FileBasedCustomizableElement"/>
+ </constraints>
+ </views>
+ <views name="Multiple PropertyView" sections="//@tabs.0/@sections.12" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.3">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultiplePropertyView">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="PropertyView"/>
+ </constraints>
+ </views>
+ <views name="Multiple UICustom" sections="//@tabs.0/@sections.13" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.4">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleUICustom">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="UICustom"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <views name="Multiple ModelTemplate" sections="//@tabs.0/@sections.14" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.5">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleModelTemplate">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="ModelTemplate"/>
+ </constraints>
+ </views>
+ <views name="Multiple Palette" sections="//@tabs.0/@sections.15" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.6">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultiplePalette">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="Palette"/>
+ </constraints>
+ </views>
+ <views name="Multiple Profile" sections="//@tabs.0/@sections.16" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.7">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleProfile">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="Profile"/>
+ </constraints>
+ </views>
+ <views name="Multiple UMLModel" sections="//@tabs.0/@sections.17" elementMultiplicity="-1" automaticContext="true" datacontexts="//@dataContexts.0/@elements.8">
+ <constraints xsi:type="contexts:SimpleConstraint" name="isMultipleUMLModel">
+ <constraintType href="pathmap://PPEResources/Environment.xmi#//@constraintTypes.0"/>
+ <properties xsi:type="contexts:ValueProperty" name="className" value="UMLModel"/>
+ <properties xsi:type="contexts:ValueProperty" name="nsUri" value="http://www.eclipse.org/papyrus/customization"/>
+ </constraints>
+ </views>
+ <dataContexts name="customization" label="customization">
+ <elements name="CustomizationConfiguration">
+ <properties name="plugin"/>
+ <properties name="elements" type="Reference" multiplicity="-1"/>
+ </elements>
+ <elements name="CustomizableElement"/>
+ <elements name="FileBasedCustomizableElement">
+ <properties name="file"/>
+ </elements>
+ <elements name="PropertyView"/>
+ <elements name="UICustom">
+ <properties name="loadByDefault" type="Boolean"/>
+ </elements>
+ <elements name="ModelTemplate">
+ <properties name="language"/>
+ <properties name="name"/>
+ <properties name="id"/>
+ </elements>
+ <elements name="Palette"/>
+ <elements name="Profile">
+ <properties name="qualifiednames"/>
+ <properties name="iconpath"/>
+ <properties name="description"/>
+ <properties name="provider"/>
+ <properties name="name"/>
+ </elements>
+ <elements name="UMLModel">
+ <properties name="name"/>
+ <properties name="iconpath"/>
+ <properties name="description"/>
+ <properties name="provider"/>
+ </elements>
+ <modelElementFactory href="pathmap://PPEResources/Environment.xmi#//@modelElementFactories.0"/>
+ </dataContexts>
+</contexts:Context>
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizableElement.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizableElement.xwt
new file mode 100644
index 00000000000..16c43716496
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizableElement.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizationConfiguration.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizationConfiguration.xwt
new file mode 100644
index 00000000000..16c43716496
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleCustomizationConfiguration.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleFileBasedCustomizableElement.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleFileBasedCustomizableElement.xwt
new file mode 100644
index 00000000000..16c43716496
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleFileBasedCustomizableElement.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleModelTemplate.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleModelTemplate.xwt
new file mode 100644
index 00000000000..da91024e548
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleModelTemplate.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringEditor input="{Binding}" property="customization:ModelTemplate:language"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePalette.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePalette.xwt
new file mode 100644
index 00000000000..9fb0660fabb
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePalette.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns:j="clr-namespace:java.lang"><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><Label text="This element is not available yet"></Label></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleProfile.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleProfile.xwt
new file mode 100644
index 00000000000..42fea4858f8
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleProfile.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringEditor input="{Binding}" property="customization:Profile:provider"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePropertyView.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePropertyView.xwt
new file mode 100644
index 00000000000..16c43716496
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultiplePropertyView.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUICustom.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUICustom.xwt
new file mode 100644
index 00000000000..e1c79c10310
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUICustom.xwt
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation"
+ xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets"
+ xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout">
+ <Composite.layout>
+ <ppel:PropertiesLayout></ppel:PropertiesLayout>
+ </Composite.layout>
+ <Composite>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:BooleanRadio input="{Binding}"
+ property="customization:UICustom:loadByDefault"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUMLModel.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUMLModel.xwt
new file mode 100644
index 00000000000..f55c0329b9a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/MultipleUMLModel.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringEditor input="{Binding}" property="customization:UMLModel:provider"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizableElement.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizableElement.xwt
new file mode 100644
index 00000000000..16c43716496
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizableElement.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizationConfiguration.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizationConfiguration.xwt
new file mode 100644
index 00000000000..23d044d364c
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleCustomizationConfiguration.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringEditor property="customization:CustomizationConfiguration:plugin" readOnly="true" input="{Binding}"></ppe:StringEditor><ppe:MultiReference input="{Binding}" property="customization:CustomizationConfiguration:elements"></ppe:MultiReference></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleFileBasedCustomizableElement.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleFileBasedCustomizableElement.xwt
new file mode 100644
index 00000000000..974a31b83dd
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleFileBasedCustomizableElement.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:x="http://www.eclipse.org/xwt" xmlns:j="clr-namespace:java.lang"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringFileSelector input="{Binding}" property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleModelTemplate.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleModelTemplate.xwt
new file mode 100644
index 00000000000..2d5fa4043c5
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleModelTemplate.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:x="http://www.eclipse.org/xwt"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringFileSelector input="{Binding}" property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector><ppe:StringEditor input="{Binding}" property="customization:ModelTemplate:name"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:ModelTemplate:language"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:ModelTemplate:id"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePalette.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePalette.xwt
new file mode 100644
index 00000000000..7b87e553372
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePalette.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns:x="http://www.eclipse.org/xwt" xmlns:j="clr-namespace:java.lang"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Label text="This element is not available yet"></Label></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleProfile.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleProfile.xwt
new file mode 100644
index 00000000000..11bbb7866a7
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleProfile.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:j="clr-namespace:java.lang" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns:x="http://www.eclipse.org/xwt"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringFileSelector input="{Binding}" property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector><ppe:StringEditor input="{Binding}" property="customization:Profile:name"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:Profile:description"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:Profile:iconpath"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:Profile:provider"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:Profile:qualifiednames"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePropertyView.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePropertyView.xwt
new file mode 100644
index 00000000000..6a525c60b49
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SinglePropertyView.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:x="http://www.eclipse.org/xwt" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><ppe:StringFileSelector input="{Binding}" property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUICustom.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUICustom.xwt
new file mode 100644
index 00000000000..38877489ce7
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUICustom.xwt
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets"
+ xmlns:j="clr-namespace:java.lang" xmlns:ppel="clr-namespace:org.eclipse.papyrus.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>
+ <Composite.layout>
+ <ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+ </Composite.layout>
+ <ppe:StringFileSelector input="{Binding}"
+ property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector>
+ <ppe:BooleanRadio input="{Binding}"
+ property="customization:UICustom:loadByDefault"></ppe:BooleanRadio>
+ </Composite>
+</Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUMLModel.xwt b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUMLModel.xwt
new file mode 100644
index 00000000000..88fe597762a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/Customization/ui/SingleUMLModel.xwt
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns:ppe="clr-namespace:org.eclipse.papyrus.properties.widgets" xmlns:ppel="clr-namespace:org.eclipse.papyrus.properties.widgets.layout" xmlns="http://www.eclipse.org/xwt/presentation" xmlns:x="http://www.eclipse.org/xwt" xmlns:j="clr-namespace:java.lang"><Composite.layout><ppel:PropertiesLayout></ppel:PropertiesLayout></Composite.layout><Composite><Composite.layout><ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout></Composite.layout><ppe:StringFileSelector input="{Binding}" property="customization:FileBasedCustomizableElement:file"></ppe:StringFileSelector><ppe:StringEditor input="{Binding}" property="customization:UMLModel:name"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:UMLModel:description"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:UMLModel:iconpath"></ppe:StringEditor><ppe:StringEditor input="{Binding}" property="customization:UMLModel:provider"></ppe:StringEditor></Composite></Composite> \ No newline at end of file
diff --git a/incoming/org.eclipse.papyrus.customization/Model/TestConfig.xmi b/incoming/org.eclipse.papyrus.customization/Model/TestConfig.xmi
new file mode 100644
index 00000000000..7a89c1e6ed2
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/Model/TestConfig.xmi
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="ASCII"?>
+<custom:CustomizationConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:custom="http://www.eclipse.org/papyrus/customization" xsi:schemaLocation="http://www.eclipse.org/papyrus/customization Customization.ecore" plugin="org.eclipse.papyrus.customizationtest">
+ <elements xsi:type="custom:FileBasedCustomizableElement" file="sampleUiCustom.xmi"/>
+ <elements xsi:type="custom:FileBasedCustomizableElement" file="samplePalette.xmi" type="Palette"/>
+ <elements xsi:type="custom:FileBasedCustomizableElement" file="samplePalette2.xmi" type="Palette"/>
+</custom:CustomizationConfiguration>
diff --git a/incoming/org.eclipse.papyrus.customization/about.html b/incoming/org.eclipse.papyrus.customization/about.html
new file mode 100644
index 00000000000..82d49bf5f81
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/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/incoming/org.eclipse.papyrus.customization/build.properties b/incoming/org.eclipse.papyrus.customization/build.properties
new file mode 100644
index 00000000000..facb22578fc
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/build.properties
@@ -0,0 +1,17 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+bin.includes = .,\
+ model/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties,\
+ icons/,\
+ about.html,\
+ Model/
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/incoming/org.eclipse.papyrus.customization/icons/papyrus.png b/incoming/org.eclipse.papyrus.customization/icons/papyrus.png
new file mode 100644
index 00000000000..0f74e27b483
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/icons/papyrus.png
Binary files differ
diff --git a/incoming/org.eclipse.papyrus.customization/plugin.properties b/incoming/org.eclipse.papyrus.customization/plugin.properties
new file mode 100644
index 00000000000..d78d4f7087c
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/plugin.properties
@@ -0,0 +1,10 @@
+
+# <copyright>
+# </copyright>
+#
+# $Id$
+
+pluginName = Customization Manager (Incubation)
+providerName = Eclipse Modeling Project
+
+wizard.name = Customization plug-in
diff --git a/incoming/org.eclipse.papyrus.customization/plugin.xml b/incoming/org.eclipse.papyrus.customization/plugin.xml
new file mode 100644
index 00000000000..1a53973af31
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/plugin.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ <copyright>
+ </copyright>
+
+ $Id$
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <package
+ uri="http://www.eclipse.org/papyrus/customization"
+ class="org.eclipse.papyrus.customization.model.customization.CustomizationPackage"
+ genModel="Model/Customization.genmodel"/>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.papyrus.wizards.category"
+ class="org.eclipse.papyrus.customization.wizard.CreateNewCustomizationPluginWizard"
+ icon="icons/papyrus.png"
+ id="org.eclipse.papyrus.customization.wizard"
+ name="%wizard.name">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.papyrus.properties.context">
+ <context
+ contextModel="Model/Customization/Customization.ctx"
+ loadDefault="true">
+ </context>
+ </extension>
+
+</plugin>
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizableElement.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizableElement.java
new file mode 100644
index 00000000000..16de4a27d35
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizableElement.java
@@ -0,0 +1,22 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Customizable Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getCustomizableElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface CustomizableElement extends EObject {
+} // CustomizableElement
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationConfiguration.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationConfiguration.java
new file mode 100644
index 00000000000..08db2d4ad82
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationConfiguration.java
@@ -0,0 +1,73 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getPlugin <em>Plugin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getCustomizationConfiguration()
+ * @model
+ * @generated
+ */
+public interface CustomizationConfiguration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Plugin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Plugin</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Plugin</em>' attribute.
+ * @see #setPlugin(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getCustomizationConfiguration_Plugin()
+ * @model required="true"
+ * @generated
+ */
+ String getPlugin();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getPlugin <em>Plugin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Plugin</em>' attribute.
+ * @see #getPlugin()
+ * @generated
+ */
+ void setPlugin(String value);
+
+ /**
+ * Returns the value of the '<em><b>Elements</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.papyrus.customization.model.customization.CustomizableElement}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Elements</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Elements</em>' containment reference list.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getCustomizationConfiguration_Elements()
+ * @model containment="true"
+ * @generated
+ */
+ EList<CustomizableElement> getElements();
+
+} // CustomizationConfiguration
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationFactory.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationFactory.java
new file mode 100644
index 00000000000..11b2497d92e
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationFactory.java
@@ -0,0 +1,100 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage
+ * @generated
+ */
+public interface CustomizationFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomizationFactory eINSTANCE = org.eclipse.papyrus.customization.model.customization.impl.CustomizationFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Configuration</em>'.
+ * @generated
+ */
+ CustomizationConfiguration createCustomizationConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Property View</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property View</em>'.
+ * @generated
+ */
+ PropertyView createPropertyView();
+
+ /**
+ * Returns a new object of class '<em>UI Custom</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>UI Custom</em>'.
+ * @generated
+ */
+ UICustom createUICustom();
+
+ /**
+ * Returns a new object of class '<em>Model Template</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Model Template</em>'.
+ * @generated
+ */
+ ModelTemplate createModelTemplate();
+
+ /**
+ * Returns a new object of class '<em>Palette</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Palette</em>'.
+ * @generated
+ */
+ Palette createPalette();
+
+ /**
+ * Returns a new object of class '<em>Profile</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Profile</em>'.
+ * @generated
+ */
+ Profile createProfile();
+
+ /**
+ * Returns a new object of class '<em>UML Model</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>UML Model</em>'.
+ * @generated
+ */
+ UMLModel createUMLModel();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ CustomizationPackage getCustomizationPackage();
+
+} //CustomizationFactory
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationPackage.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationPackage.java
new file mode 100644
index 00000000000..79a9af0b58e
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/CustomizationPackage.java
@@ -0,0 +1,940 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface CustomizationPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "customization";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/papyrus/customization";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "custom";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ CustomizationPackage eINSTANCE = org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getCustomizationConfiguration()
+ * @generated
+ */
+ int CUSTOMIZATION_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Plugin</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CONFIGURATION__PLUGIN = 0;
+
+ /**
+ * The feature id for the '<em><b>Elements</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CONFIGURATION__ELEMENTS = 1;
+
+ /**
+ * The number of structural features of the '<em>Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZATION_CONFIGURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizableElementImpl <em>Customizable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizableElementImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getCustomizableElement()
+ * @generated
+ */
+ int CUSTOMIZABLE_ELEMENT = 1;
+
+ /**
+ * The number of structural features of the '<em>Customizable Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CUSTOMIZABLE_ELEMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.FileBasedCustomizableElementImpl <em>File Based Customizable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.FileBasedCustomizableElementImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getFileBasedCustomizableElement()
+ * @generated
+ */
+ int FILE_BASED_CUSTOMIZABLE_ELEMENT = 2;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE = CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>File Based Customizable Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT = CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.PropertyViewImpl <em>Property View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.PropertyViewImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getPropertyView()
+ * @generated
+ */
+ int PROPERTY_VIEW = 3;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_VIEW__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The number of structural features of the '<em>Property View</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_VIEW_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.UICustomImpl <em>UI Custom</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.UICustomImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getUICustom()
+ * @generated
+ */
+ int UI_CUSTOM = 4;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UI_CUSTOM__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The feature id for the '<em><b>Load By Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UI_CUSTOM__LOAD_BY_DEFAULT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>UI Custom</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UI_CUSTOM_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl <em>Model Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getModelTemplate()
+ * @generated
+ */
+ int MODEL_TEMPLATE = 5;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_TEMPLATE__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The feature id for the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_TEMPLATE__LANGUAGE = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_TEMPLATE__NAME = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_TEMPLATE__ID = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Model Template</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODEL_TEMPLATE_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.PaletteImpl <em>Palette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.PaletteImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getPalette()
+ * @generated
+ */
+ int PALETTE = 6;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The number of structural features of the '<em>Palette</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PALETTE_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl <em>Profile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getProfile()
+ * @generated
+ */
+ int PROFILE = 7;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The feature id for the '<em><b>Qualifiednames</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__QUALIFIEDNAMES = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Iconpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__ICONPATH = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__DESCRIPTION = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Provider</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__PROVIDER = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE__NAME = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The number of structural features of the '<em>Profile</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROFILE_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl <em>UML Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getUMLModel()
+ * @generated
+ */
+ int UML_MODEL = 8;
+
+ /**
+ * The feature id for the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL__FILE = FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL__NAME = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Iconpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL__ICONPATH = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL__DESCRIPTION = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Provider</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL__PROVIDER = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The number of structural features of the '<em>UML Model</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UML_MODEL_FEATURE_COUNT = FILE_BASED_CUSTOMIZABLE_ELEMENT_FEATURE_COUNT + 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Configuration</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration
+ * @generated
+ */
+ EClass getCustomizationConfiguration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getPlugin <em>Plugin</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Plugin</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getPlugin()
+ * @see #getCustomizationConfiguration()
+ * @generated
+ */
+ EAttribute getCustomizationConfiguration_Plugin();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getElements <em>Elements</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Elements</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration#getElements()
+ * @see #getCustomizationConfiguration()
+ * @generated
+ */
+ EReference getCustomizationConfiguration_Elements();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.CustomizableElement <em>Customizable Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Customizable Element</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizableElement
+ * @generated
+ */
+ EClass getCustomizableElement();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement <em>File Based Customizable Element</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>File Based Customizable Element</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement
+ * @generated
+ */
+ EClass getFileBasedCustomizableElement();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement#getFile <em>File</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement#getFile()
+ * @see #getFileBasedCustomizableElement()
+ * @generated
+ */
+ EAttribute getFileBasedCustomizableElement_File();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.PropertyView <em>Property View</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property View</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.PropertyView
+ * @generated
+ */
+ EClass getPropertyView();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.UICustom <em>UI Custom</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>UI Custom</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UICustom
+ * @generated
+ */
+ EClass getUICustom();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.UICustom#isLoadByDefault <em>Load By Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Load By Default</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UICustom#isLoadByDefault()
+ * @see #getUICustom()
+ * @generated
+ */
+ EAttribute getUICustom_LoadByDefault();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate <em>Model Template</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Model Template</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.ModelTemplate
+ * @generated
+ */
+ EClass getModelTemplate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getLanguage <em>Language</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Language</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.ModelTemplate#getLanguage()
+ * @see #getModelTemplate()
+ * @generated
+ */
+ EAttribute getModelTemplate_Language();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.ModelTemplate#getName()
+ * @see #getModelTemplate()
+ * @generated
+ */
+ EAttribute getModelTemplate_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.ModelTemplate#getId()
+ * @see #getModelTemplate()
+ * @generated
+ */
+ EAttribute getModelTemplate_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.Palette <em>Palette</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Palette</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Palette
+ * @generated
+ */
+ EClass getPalette();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.Profile <em>Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Profile</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile
+ * @generated
+ */
+ EClass getProfile();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.Profile#getQualifiednames <em>Qualifiednames</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Qualifiednames</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile#getQualifiednames()
+ * @see #getProfile()
+ * @generated
+ */
+ EAttribute getProfile_Qualifiednames();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.Profile#getIconpath <em>Iconpath</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Iconpath</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile#getIconpath()
+ * @see #getProfile()
+ * @generated
+ */
+ EAttribute getProfile_Iconpath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.Profile#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile#getDescription()
+ * @see #getProfile()
+ * @generated
+ */
+ EAttribute getProfile_Description();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.Profile#getProvider <em>Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Provider</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile#getProvider()
+ * @see #getProfile()
+ * @generated
+ */
+ EAttribute getProfile_Provider();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.Profile#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile#getName()
+ * @see #getProfile()
+ * @generated
+ */
+ EAttribute getProfile_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.customization.model.customization.UMLModel <em>UML Model</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>UML Model</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel
+ * @generated
+ */
+ EClass getUMLModel();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel#getName()
+ * @see #getUMLModel()
+ * @generated
+ */
+ EAttribute getUMLModel_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getIconpath <em>Iconpath</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Iconpath</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel#getIconpath()
+ * @see #getUMLModel()
+ * @generated
+ */
+ EAttribute getUMLModel_Iconpath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel#getDescription()
+ * @see #getUMLModel()
+ * @generated
+ */
+ EAttribute getUMLModel_Description();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getProvider <em>Provider</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Provider</em>'.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel#getProvider()
+ * @see #getUMLModel()
+ * @generated
+ */
+ EAttribute getUMLModel_Provider();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ CustomizationFactory getCustomizationFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl <em>Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getCustomizationConfiguration()
+ * @generated
+ */
+ EClass CUSTOMIZATION_CONFIGURATION = eINSTANCE.getCustomizationConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Plugin</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute CUSTOMIZATION_CONFIGURATION__PLUGIN = eINSTANCE.getCustomizationConfiguration_Plugin();
+
+ /**
+ * The meta object literal for the '<em><b>Elements</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference CUSTOMIZATION_CONFIGURATION__ELEMENTS = eINSTANCE.getCustomizationConfiguration_Elements();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizableElementImpl <em>Customizable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizableElementImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getCustomizableElement()
+ * @generated
+ */
+ EClass CUSTOMIZABLE_ELEMENT = eINSTANCE.getCustomizableElement();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.FileBasedCustomizableElementImpl <em>File Based Customizable Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.FileBasedCustomizableElementImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getFileBasedCustomizableElement()
+ * @generated
+ */
+ EClass FILE_BASED_CUSTOMIZABLE_ELEMENT = eINSTANCE.getFileBasedCustomizableElement();
+
+ /**
+ * The meta object literal for the '<em><b>File</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE = eINSTANCE.getFileBasedCustomizableElement_File();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.PropertyViewImpl <em>Property View</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.PropertyViewImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getPropertyView()
+ * @generated
+ */
+ EClass PROPERTY_VIEW = eINSTANCE.getPropertyView();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.UICustomImpl <em>UI Custom</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.UICustomImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getUICustom()
+ * @generated
+ */
+ EClass UI_CUSTOM = eINSTANCE.getUICustom();
+
+ /**
+ * The meta object literal for the '<em><b>Load By Default</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UI_CUSTOM__LOAD_BY_DEFAULT = eINSTANCE.getUICustom_LoadByDefault();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl <em>Model Template</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getModelTemplate()
+ * @generated
+ */
+ EClass MODEL_TEMPLATE = eINSTANCE.getModelTemplate();
+
+ /**
+ * The meta object literal for the '<em><b>Language</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_TEMPLATE__LANGUAGE = eINSTANCE.getModelTemplate_Language();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_TEMPLATE__NAME = eINSTANCE.getModelTemplate_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute MODEL_TEMPLATE__ID = eINSTANCE.getModelTemplate_Id();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.PaletteImpl <em>Palette</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.PaletteImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getPalette()
+ * @generated
+ */
+ EClass PALETTE = eINSTANCE.getPalette();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl <em>Profile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getProfile()
+ * @generated
+ */
+ EClass PROFILE = eINSTANCE.getProfile();
+
+ /**
+ * The meta object literal for the '<em><b>Qualifiednames</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROFILE__QUALIFIEDNAMES = eINSTANCE.getProfile_Qualifiednames();
+
+ /**
+ * The meta object literal for the '<em><b>Iconpath</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROFILE__ICONPATH = eINSTANCE.getProfile_Iconpath();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROFILE__DESCRIPTION = eINSTANCE.getProfile_Description();
+
+ /**
+ * The meta object literal for the '<em><b>Provider</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROFILE__PROVIDER = eINSTANCE.getProfile_Provider();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROFILE__NAME = eINSTANCE.getProfile_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl <em>UML Model</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl
+ * @see org.eclipse.papyrus.customization.model.customization.impl.CustomizationPackageImpl#getUMLModel()
+ * @generated
+ */
+ EClass UML_MODEL = eINSTANCE.getUMLModel();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UML_MODEL__NAME = eINSTANCE.getUMLModel_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Iconpath</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UML_MODEL__ICONPATH = eINSTANCE.getUMLModel_Iconpath();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UML_MODEL__DESCRIPTION = eINSTANCE.getUMLModel_Description();
+
+ /**
+ * The meta object literal for the '<em><b>Provider</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute UML_MODEL__PROVIDER = eINSTANCE.getUMLModel_Provider();
+
+ }
+
+} //CustomizationPackage
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/FileBasedCustomizableElement.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/FileBasedCustomizableElement.java
new file mode 100644
index 00000000000..182693ff877
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/FileBasedCustomizableElement.java
@@ -0,0 +1,53 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File Based Customizable Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement#getFile <em>File</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getFileBasedCustomizableElement()
+ * @model abstract="true"
+ * @generated
+ */
+public interface FileBasedCustomizableElement extends CustomizableElement {
+ /**
+ * Returns the value of the '<em><b>File</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>File</em>' attribute.
+ * @see #setFile(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getFileBasedCustomizableElement_File()
+ * @model required="true"
+ * @generated
+ */
+ String getFile();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement#getFile <em>File</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File</em>' attribute.
+ * @see #getFile()
+ * @generated
+ */
+ void setFile(String value);
+
+} // FileBasedCustomizableElement
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/ModelTemplate.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/ModelTemplate.java
new file mode 100644
index 00000000000..9ee49eb2550
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/ModelTemplate.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Model Template</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getLanguage <em>Language</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getModelTemplate()
+ * @model
+ * @generated
+ */
+public interface ModelTemplate extends FileBasedCustomizableElement {
+ /**
+ * Returns the value of the '<em><b>Language</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Language</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Language</em>' attribute.
+ * @see #setLanguage(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getModelTemplate_Language()
+ * @model
+ * @generated
+ */
+ String getLanguage();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getLanguage <em>Language</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Language</em>' attribute.
+ * @see #getLanguage()
+ * @generated
+ */
+ void setLanguage(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getModelTemplate_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getModelTemplate_Id()
+ * @model required="true"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // ModelTemplate
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Palette.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Palette.java
new file mode 100644
index 00000000000..11bb7974c1e
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Palette.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Palette</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getPalette()
+ * @model
+ * @generated
+ */
+public interface Palette extends FileBasedCustomizableElement {
+} // Palette
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Profile.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Profile.java
new file mode 100644
index 00000000000..f11f3e08506
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/Profile.java
@@ -0,0 +1,161 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Profile</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.Profile#getQualifiednames <em>Qualifiednames</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.Profile#getIconpath <em>Iconpath</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.Profile#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.Profile#getProvider <em>Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.Profile#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile()
+ * @model
+ * @generated
+ */
+public interface Profile extends FileBasedCustomizableElement {
+ /**
+ * Returns the value of the '<em><b>Qualifiednames</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Qualifiednames</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Qualifiednames</em>' attribute.
+ * @see #setQualifiednames(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile_Qualifiednames()
+ * @model
+ * @generated
+ */
+ String getQualifiednames();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.Profile#getQualifiednames <em>Qualifiednames</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Qualifiednames</em>' attribute.
+ * @see #getQualifiednames()
+ * @generated
+ */
+ void setQualifiednames(String value);
+
+ /**
+ * Returns the value of the '<em><b>Iconpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Iconpath</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Iconpath</em>' attribute.
+ * @see #setIconpath(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile_Iconpath()
+ * @model
+ * @generated
+ */
+ String getIconpath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.Profile#getIconpath <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Iconpath</em>' attribute.
+ * @see #getIconpath()
+ * @generated
+ */
+ void setIconpath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.Profile#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Provider</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Provider</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Provider</em>' attribute.
+ * @see #setProvider(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile_Provider()
+ * @model
+ * @generated
+ */
+ String getProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.Profile#getProvider <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Provider</em>' attribute.
+ * @see #getProvider()
+ * @generated
+ */
+ void setProvider(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getProfile_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.Profile#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // Profile
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/PropertyView.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/PropertyView.java
new file mode 100644
index 00000000000..e29bb5c920a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/PropertyView.java
@@ -0,0 +1,21 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property View</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getPropertyView()
+ * @model
+ * @generated
+ */
+public interface PropertyView extends FileBasedCustomizableElement {
+} // PropertyView
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UICustom.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UICustom.java
new file mode 100644
index 00000000000..f0e29eefe88
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UICustom.java
@@ -0,0 +1,54 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>UI Custom</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.UICustom#isLoadByDefault <em>Load By Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUICustom()
+ * @model
+ * @generated
+ */
+public interface UICustom extends FileBasedCustomizableElement {
+ /**
+ * Returns the value of the '<em><b>Load By Default</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Load By Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Load By Default</em>' attribute.
+ * @see #setLoadByDefault(boolean)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUICustom_LoadByDefault()
+ * @model default="false"
+ * @generated
+ */
+ boolean isLoadByDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.UICustom#isLoadByDefault <em>Load By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Load By Default</em>' attribute.
+ * @see #isLoadByDefault()
+ * @generated
+ */
+ void setLoadByDefault(boolean value);
+
+} // UICustom
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UMLModel.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UMLModel.java
new file mode 100644
index 00000000000..387e7eb627e
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/UMLModel.java
@@ -0,0 +1,134 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>UML Model</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getIconpath <em>Iconpath</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getProvider <em>Provider</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUMLModel()
+ * @model
+ * @generated
+ */
+public interface UMLModel extends FileBasedCustomizableElement {
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUMLModel_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Iconpath</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Iconpath</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Iconpath</em>' attribute.
+ * @see #setIconpath(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUMLModel_Iconpath()
+ * @model
+ * @generated
+ */
+ String getIconpath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getIconpath <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Iconpath</em>' attribute.
+ * @see #getIconpath()
+ * @generated
+ */
+ void setIconpath(String value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUMLModel_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+ /**
+ * Returns the value of the '<em><b>Provider</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Provider</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Provider</em>' attribute.
+ * @see #setProvider(String)
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#getUMLModel_Provider()
+ * @model
+ * @generated
+ */
+ String getProvider();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.customization.model.customization.UMLModel#getProvider <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Provider</em>' attribute.
+ * @see #getProvider()
+ * @generated
+ */
+ void setProvider(String value);
+
+} // UMLModel
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizableElementImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizableElementImpl.java
new file mode 100644
index 00000000000..a568185a0d6
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizableElementImpl.java
@@ -0,0 +1,45 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Customizable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class CustomizableElementImpl extends EObjectImpl implements CustomizableElement {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CustomizableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.CUSTOMIZABLE_ELEMENT;
+ }
+
+} //CustomizableElementImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationConfigurationImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationConfigurationImpl.java
new file mode 100644
index 00000000000..aa53c1dd3b2
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationConfigurationImpl.java
@@ -0,0 +1,226 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration;
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl#getPlugin <em>Plugin</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.CustomizationConfigurationImpl#getElements <em>Elements</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CustomizationConfigurationImpl extends EObjectImpl implements CustomizationConfiguration {
+ /**
+ * The default value of the '{@link #getPlugin() <em>Plugin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPlugin()
+ * @generated
+ * @ordered
+ */
+ protected static final String PLUGIN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPlugin() <em>Plugin</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPlugin()
+ * @generated
+ * @ordered
+ */
+ protected String plugin = PLUGIN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getElements()
+ * @generated
+ * @ordered
+ */
+ protected EList<CustomizableElement> elements;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CustomizationConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.CUSTOMIZATION_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPlugin(String newPlugin) {
+ String oldPlugin = plugin;
+ plugin = newPlugin;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.CUSTOMIZATION_CONFIGURATION__PLUGIN, oldPlugin, plugin));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<CustomizableElement> getElements() {
+ if (elements == null) {
+ elements = new EObjectContainmentEList<CustomizableElement>(CustomizableElement.class, this, CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS);
+ }
+ return elements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS:
+ return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__PLUGIN:
+ return getPlugin();
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS:
+ return getElements();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__PLUGIN:
+ setPlugin((String)newValue);
+ return;
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS:
+ getElements().clear();
+ getElements().addAll((Collection<? extends CustomizableElement>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__PLUGIN:
+ setPlugin(PLUGIN_EDEFAULT);
+ return;
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS:
+ getElements().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__PLUGIN:
+ return PLUGIN_EDEFAULT == null ? plugin != null : !PLUGIN_EDEFAULT.equals(plugin);
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION__ELEMENTS:
+ return elements != null && !elements.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (plugin: ");
+ result.append(plugin);
+ result.append(')');
+ return result.toString();
+ }
+
+} //CustomizationConfigurationImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationFactoryImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationFactoryImpl.java
new file mode 100644
index 00000000000..6ffc9ecd364
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationFactoryImpl.java
@@ -0,0 +1,165 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+import org.eclipse.papyrus.customization.model.customization.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomizationFactoryImpl extends EFactoryImpl implements CustomizationFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static CustomizationFactory init() {
+ try {
+ CustomizationFactory theCustomizationFactory = (CustomizationFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.eclipse.org/papyrus/customization");
+ if (theCustomizationFactory != null) {
+ return theCustomizationFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new CustomizationFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION: return createCustomizationConfiguration();
+ case CustomizationPackage.PROPERTY_VIEW: return createPropertyView();
+ case CustomizationPackage.UI_CUSTOM: return createUICustom();
+ case CustomizationPackage.MODEL_TEMPLATE: return createModelTemplate();
+ case CustomizationPackage.PALETTE: return createPalette();
+ case CustomizationPackage.PROFILE: return createProfile();
+ case CustomizationPackage.UML_MODEL: return createUMLModel();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationConfiguration createCustomizationConfiguration() {
+ CustomizationConfigurationImpl customizationConfiguration = new CustomizationConfigurationImpl();
+ return customizationConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyView createPropertyView() {
+ PropertyViewImpl propertyView = new PropertyViewImpl();
+ return propertyView;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UICustom createUICustom() {
+ UICustomImpl uiCustom = new UICustomImpl();
+ return uiCustom;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ModelTemplate createModelTemplate() {
+ ModelTemplateImpl modelTemplate = new ModelTemplateImpl();
+ return modelTemplate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Palette createPalette() {
+ PaletteImpl palette = new PaletteImpl();
+ return palette;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Profile createProfile() {
+ ProfileImpl profile = new ProfileImpl();
+ return profile;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UMLModel createUMLModel() {
+ UMLModelImpl umlModel = new UMLModelImpl();
+ return umlModel;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationPackage getCustomizationPackage() {
+ return (CustomizationPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static CustomizationPackage getPackage() {
+ return CustomizationPackage.eINSTANCE;
+ }
+
+} //CustomizationFactoryImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationPackageImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationPackageImpl.java
new file mode 100644
index 00000000000..bb6cd298c29
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/CustomizationPackageImpl.java
@@ -0,0 +1,519 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration;
+import org.eclipse.papyrus.customization.model.customization.CustomizationFactory;
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.ModelTemplate;
+import org.eclipse.papyrus.customization.model.customization.Palette;
+import org.eclipse.papyrus.customization.model.customization.Profile;
+import org.eclipse.papyrus.customization.model.customization.PropertyView;
+import org.eclipse.papyrus.customization.model.customization.UICustom;
+import org.eclipse.papyrus.customization.model.customization.UMLModel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CustomizationPackageImpl extends EPackageImpl implements CustomizationPackage {
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customizationConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass customizableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass fileBasedCustomizableElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyViewEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass uiCustomEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass modelTemplateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass paletteEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass profileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass umlModelEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CustomizationPackageImpl() {
+ super(eNS_URI, CustomizationFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link CustomizationPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CustomizationPackage init() {
+ if (isInited) return (CustomizationPackage)EPackage.Registry.INSTANCE.getEPackage(CustomizationPackage.eNS_URI);
+
+ // Obtain or create and register package
+ CustomizationPackageImpl theCustomizationPackage = (CustomizationPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CustomizationPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CustomizationPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theCustomizationPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCustomizationPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCustomizationPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CustomizationPackage.eNS_URI, theCustomizationPackage);
+ return theCustomizationPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomizationConfiguration() {
+ return customizationConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getCustomizationConfiguration_Plugin() {
+ return (EAttribute)customizationConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getCustomizationConfiguration_Elements() {
+ return (EReference)customizationConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCustomizableElement() {
+ return customizableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFileBasedCustomizableElement() {
+ return fileBasedCustomizableElementEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFileBasedCustomizableElement_File() {
+ return (EAttribute)fileBasedCustomizableElementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPropertyView() {
+ return propertyViewEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUICustom() {
+ return uiCustomEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUICustom_LoadByDefault() {
+ return (EAttribute)uiCustomEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModelTemplate() {
+ return modelTemplateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelTemplate_Language() {
+ return (EAttribute)modelTemplateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelTemplate_Name() {
+ return (EAttribute)modelTemplateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModelTemplate_Id() {
+ return (EAttribute)modelTemplateEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPalette() {
+ return paletteEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProfile() {
+ return profileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfile_Qualifiednames() {
+ return (EAttribute)profileEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfile_Iconpath() {
+ return (EAttribute)profileEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfile_Description() {
+ return (EAttribute)profileEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfile_Provider() {
+ return (EAttribute)profileEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProfile_Name() {
+ return (EAttribute)profileEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUMLModel() {
+ return umlModelEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUMLModel_Name() {
+ return (EAttribute)umlModelEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUMLModel_Iconpath() {
+ return (EAttribute)umlModelEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUMLModel_Description() {
+ return (EAttribute)umlModelEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUMLModel_Provider() {
+ return (EAttribute)umlModelEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationFactory getCustomizationFactory() {
+ return (CustomizationFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ customizationConfigurationEClass = createEClass(CUSTOMIZATION_CONFIGURATION);
+ createEAttribute(customizationConfigurationEClass, CUSTOMIZATION_CONFIGURATION__PLUGIN);
+ createEReference(customizationConfigurationEClass, CUSTOMIZATION_CONFIGURATION__ELEMENTS);
+
+ customizableElementEClass = createEClass(CUSTOMIZABLE_ELEMENT);
+
+ fileBasedCustomizableElementEClass = createEClass(FILE_BASED_CUSTOMIZABLE_ELEMENT);
+ createEAttribute(fileBasedCustomizableElementEClass, FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE);
+
+ propertyViewEClass = createEClass(PROPERTY_VIEW);
+
+ uiCustomEClass = createEClass(UI_CUSTOM);
+ createEAttribute(uiCustomEClass, UI_CUSTOM__LOAD_BY_DEFAULT);
+
+ modelTemplateEClass = createEClass(MODEL_TEMPLATE);
+ createEAttribute(modelTemplateEClass, MODEL_TEMPLATE__LANGUAGE);
+ createEAttribute(modelTemplateEClass, MODEL_TEMPLATE__NAME);
+ createEAttribute(modelTemplateEClass, MODEL_TEMPLATE__ID);
+
+ paletteEClass = createEClass(PALETTE);
+
+ profileEClass = createEClass(PROFILE);
+ createEAttribute(profileEClass, PROFILE__QUALIFIEDNAMES);
+ createEAttribute(profileEClass, PROFILE__ICONPATH);
+ createEAttribute(profileEClass, PROFILE__DESCRIPTION);
+ createEAttribute(profileEClass, PROFILE__PROVIDER);
+ createEAttribute(profileEClass, PROFILE__NAME);
+
+ umlModelEClass = createEClass(UML_MODEL);
+ createEAttribute(umlModelEClass, UML_MODEL__NAME);
+ createEAttribute(umlModelEClass, UML_MODEL__ICONPATH);
+ createEAttribute(umlModelEClass, UML_MODEL__DESCRIPTION);
+ createEAttribute(umlModelEClass, UML_MODEL__PROVIDER);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ fileBasedCustomizableElementEClass.getESuperTypes().add(this.getCustomizableElement());
+ propertyViewEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+ uiCustomEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+ modelTemplateEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+ paletteEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+ profileEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+ umlModelEClass.getESuperTypes().add(this.getFileBasedCustomizableElement());
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(customizationConfigurationEClass, CustomizationConfiguration.class, "CustomizationConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getCustomizationConfiguration_Plugin(), ecorePackage.getEString(), "plugin", null, 1, 1, CustomizationConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCustomizationConfiguration_Elements(), this.getCustomizableElement(), null, "elements", null, 0, -1, CustomizationConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(customizableElementEClass, CustomizableElement.class, "CustomizableElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(fileBasedCustomizableElementEClass, FileBasedCustomizableElement.class, "FileBasedCustomizableElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFileBasedCustomizableElement_File(), ecorePackage.getEString(), "file", null, 1, 1, FileBasedCustomizableElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyViewEClass, PropertyView.class, "PropertyView", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(uiCustomEClass, UICustom.class, "UICustom", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUICustom_LoadByDefault(), ecorePackage.getEBoolean(), "loadByDefault", "false", 0, 1, UICustom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(modelTemplateEClass, ModelTemplate.class, "ModelTemplate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModelTemplate_Language(), ecorePackage.getEString(), "language", null, 0, 1, ModelTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModelTemplate_Name(), ecorePackage.getEString(), "name", null, 0, 1, ModelTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModelTemplate_Id(), ecorePackage.getEString(), "id", null, 1, 1, ModelTemplate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(paletteEClass, Palette.class, "Palette", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(profileEClass, Profile.class, "Profile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProfile_Qualifiednames(), ecorePackage.getEString(), "qualifiednames", null, 0, 1, Profile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProfile_Iconpath(), ecorePackage.getEString(), "iconpath", null, 0, 1, Profile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProfile_Description(), ecorePackage.getEString(), "description", null, 0, 1, Profile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProfile_Provider(), ecorePackage.getEString(), "provider", null, 0, 1, Profile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProfile_Name(), ecorePackage.getEString(), "name", null, 1, 1, Profile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(umlModelEClass, UMLModel.class, "UMLModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUMLModel_Name(), ecorePackage.getEString(), "name", null, 0, 1, UMLModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLModel_Iconpath(), ecorePackage.getEString(), "iconpath", null, 0, 1, UMLModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLModel_Description(), ecorePackage.getEString(), "description", null, 0, 1, UMLModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLModel_Provider(), ecorePackage.getEString(), "provider", null, 0, 1, UMLModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //CustomizationPackageImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/FileBasedCustomizableElementImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/FileBasedCustomizableElementImpl.java
new file mode 100644
index 00000000000..c05d63d8433
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/FileBasedCustomizableElementImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>File Based Customizable Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.FileBasedCustomizableElementImpl#getFile <em>File</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class FileBasedCustomizableElementImpl extends CustomizableElementImpl implements FileBasedCustomizableElement {
+ /**
+ * The default value of the '{@link #getFile() <em>File</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFile()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFile() <em>File</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFile()
+ * @generated
+ * @ordered
+ */
+ protected String file = FILE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FileBasedCustomizableElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.FILE_BASED_CUSTOMIZABLE_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFile() {
+ return file;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFile(String newFile) {
+ String oldFile = file;
+ file = newFile;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE, oldFile, file));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE:
+ return getFile();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE:
+ setFile((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE:
+ setFile(FILE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT__FILE:
+ return FILE_EDEFAULT == null ? file != null : !FILE_EDEFAULT.equals(file);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (file: ");
+ result.append(file);
+ result.append(')');
+ return result.toString();
+ }
+
+} //FileBasedCustomizableElementImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ModelTemplateImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ModelTemplateImpl.java
new file mode 100644
index 00000000000..343888eb8d2
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ModelTemplateImpl.java
@@ -0,0 +1,274 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.ModelTemplate;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Model Template</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl#getLanguage <em>Language</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ModelTemplateImpl#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModelTemplateImpl extends FileBasedCustomizableElementImpl implements ModelTemplate {
+ /**
+ * The default value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguage()
+ * @generated
+ * @ordered
+ */
+ protected static final String LANGUAGE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLanguage() <em>Language</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLanguage()
+ * @generated
+ * @ordered
+ */
+ protected String language = LANGUAGE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModelTemplateImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.MODEL_TEMPLATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLanguage() {
+ return language;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLanguage(String newLanguage) {
+ String oldLanguage = language;
+ language = newLanguage;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.MODEL_TEMPLATE__LANGUAGE, oldLanguage, language));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.MODEL_TEMPLATE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.MODEL_TEMPLATE__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.MODEL_TEMPLATE__LANGUAGE:
+ return getLanguage();
+ case CustomizationPackage.MODEL_TEMPLATE__NAME:
+ return getName();
+ case CustomizationPackage.MODEL_TEMPLATE__ID:
+ return getId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.MODEL_TEMPLATE__LANGUAGE:
+ setLanguage((String)newValue);
+ return;
+ case CustomizationPackage.MODEL_TEMPLATE__NAME:
+ setName((String)newValue);
+ return;
+ case CustomizationPackage.MODEL_TEMPLATE__ID:
+ setId((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.MODEL_TEMPLATE__LANGUAGE:
+ setLanguage(LANGUAGE_EDEFAULT);
+ return;
+ case CustomizationPackage.MODEL_TEMPLATE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case CustomizationPackage.MODEL_TEMPLATE__ID:
+ setId(ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.MODEL_TEMPLATE__LANGUAGE:
+ return LANGUAGE_EDEFAULT == null ? language != null : !LANGUAGE_EDEFAULT.equals(language);
+ case CustomizationPackage.MODEL_TEMPLATE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case CustomizationPackage.MODEL_TEMPLATE__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (language: ");
+ result.append(language);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModelTemplateImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PaletteImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PaletteImpl.java
new file mode 100644
index 00000000000..e178d6ee89a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PaletteImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.Palette;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Palette</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PaletteImpl extends FileBasedCustomizableElementImpl implements Palette {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PaletteImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.PALETTE;
+ }
+
+} //PaletteImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ProfileImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ProfileImpl.java
new file mode 100644
index 00000000000..e3829b7c09a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/ProfileImpl.java
@@ -0,0 +1,382 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.Profile;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Profile</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl#getQualifiednames <em>Qualifiednames</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl#getIconpath <em>Iconpath</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl#getProvider <em>Provider</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.ProfileImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProfileImpl extends FileBasedCustomizableElementImpl implements Profile {
+ /**
+ * The default value of the '{@link #getQualifiednames() <em>Qualifiednames</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiednames()
+ * @generated
+ * @ordered
+ */
+ protected static final String QUALIFIEDNAMES_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getQualifiednames() <em>Qualifiednames</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getQualifiednames()
+ * @generated
+ * @ordered
+ */
+ protected String qualifiednames = QUALIFIEDNAMES_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIconpath() <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconpath()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICONPATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIconpath() <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconpath()
+ * @generated
+ * @ordered
+ */
+ protected String iconpath = ICONPATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProvider() <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvider()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROVIDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProvider() <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvider()
+ * @generated
+ * @ordered
+ */
+ protected String provider = PROVIDER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProfileImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.PROFILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getQualifiednames() {
+ return qualifiednames;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setQualifiednames(String newQualifiednames) {
+ String oldQualifiednames = qualifiednames;
+ qualifiednames = newQualifiednames;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.PROFILE__QUALIFIEDNAMES, oldQualifiednames, qualifiednames));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getIconpath() {
+ return iconpath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconpath(String newIconpath) {
+ String oldIconpath = iconpath;
+ iconpath = newIconpath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.PROFILE__ICONPATH, oldIconpath, iconpath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.PROFILE__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProvider() {
+ return provider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProvider(String newProvider) {
+ String oldProvider = provider;
+ provider = newProvider;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.PROFILE__PROVIDER, oldProvider, provider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.PROFILE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.PROFILE__QUALIFIEDNAMES:
+ return getQualifiednames();
+ case CustomizationPackage.PROFILE__ICONPATH:
+ return getIconpath();
+ case CustomizationPackage.PROFILE__DESCRIPTION:
+ return getDescription();
+ case CustomizationPackage.PROFILE__PROVIDER:
+ return getProvider();
+ case CustomizationPackage.PROFILE__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.PROFILE__QUALIFIEDNAMES:
+ setQualifiednames((String)newValue);
+ return;
+ case CustomizationPackage.PROFILE__ICONPATH:
+ setIconpath((String)newValue);
+ return;
+ case CustomizationPackage.PROFILE__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case CustomizationPackage.PROFILE__PROVIDER:
+ setProvider((String)newValue);
+ return;
+ case CustomizationPackage.PROFILE__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.PROFILE__QUALIFIEDNAMES:
+ setQualifiednames(QUALIFIEDNAMES_EDEFAULT);
+ return;
+ case CustomizationPackage.PROFILE__ICONPATH:
+ setIconpath(ICONPATH_EDEFAULT);
+ return;
+ case CustomizationPackage.PROFILE__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case CustomizationPackage.PROFILE__PROVIDER:
+ setProvider(PROVIDER_EDEFAULT);
+ return;
+ case CustomizationPackage.PROFILE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.PROFILE__QUALIFIEDNAMES:
+ return QUALIFIEDNAMES_EDEFAULT == null ? qualifiednames != null : !QUALIFIEDNAMES_EDEFAULT.equals(qualifiednames);
+ case CustomizationPackage.PROFILE__ICONPATH:
+ return ICONPATH_EDEFAULT == null ? iconpath != null : !ICONPATH_EDEFAULT.equals(iconpath);
+ case CustomizationPackage.PROFILE__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case CustomizationPackage.PROFILE__PROVIDER:
+ return PROVIDER_EDEFAULT == null ? provider != null : !PROVIDER_EDEFAULT.equals(provider);
+ case CustomizationPackage.PROFILE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (qualifiednames: ");
+ result.append(qualifiednames);
+ result.append(", iconpath: ");
+ result.append(iconpath);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", provider: ");
+ result.append(provider);
+ result.append(", name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ProfileImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PropertyViewImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PropertyViewImpl.java
new file mode 100644
index 00000000000..7ec8d997d00
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/PropertyViewImpl.java
@@ -0,0 +1,43 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.PropertyView;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property View</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyViewImpl extends FileBasedCustomizableElementImpl implements PropertyView {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyViewImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.PROPERTY_VIEW;
+ }
+
+} //PropertyViewImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UICustomImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UICustomImpl.java
new file mode 100644
index 00000000000..8d455c97350
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UICustomImpl.java
@@ -0,0 +1,166 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.UICustom;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>UI Custom</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.UICustomImpl#isLoadByDefault <em>Load By Default</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UICustomImpl extends FileBasedCustomizableElementImpl implements UICustom {
+ /**
+ * The default value of the '{@link #isLoadByDefault() <em>Load By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLoadByDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean LOAD_BY_DEFAULT_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isLoadByDefault() <em>Load By Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isLoadByDefault()
+ * @generated
+ * @ordered
+ */
+ protected boolean loadByDefault = LOAD_BY_DEFAULT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UICustomImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.UI_CUSTOM;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isLoadByDefault() {
+ return loadByDefault;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLoadByDefault(boolean newLoadByDefault) {
+ boolean oldLoadByDefault = loadByDefault;
+ loadByDefault = newLoadByDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.UI_CUSTOM__LOAD_BY_DEFAULT, oldLoadByDefault, loadByDefault));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.UI_CUSTOM__LOAD_BY_DEFAULT:
+ return isLoadByDefault();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.UI_CUSTOM__LOAD_BY_DEFAULT:
+ setLoadByDefault((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.UI_CUSTOM__LOAD_BY_DEFAULT:
+ setLoadByDefault(LOAD_BY_DEFAULT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.UI_CUSTOM__LOAD_BY_DEFAULT:
+ return loadByDefault != LOAD_BY_DEFAULT_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (loadByDefault: ");
+ result.append(loadByDefault);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UICustomImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UMLModelImpl.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UMLModelImpl.java
new file mode 100644
index 00000000000..2d0dff983aa
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/impl/UMLModelImpl.java
@@ -0,0 +1,328 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.model.customization.UMLModel;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>UML Model</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl#getIconpath <em>Iconpath</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl#getDescription <em>Description</em>}</li>
+ * <li>{@link org.eclipse.papyrus.customization.model.customization.impl.UMLModelImpl#getProvider <em>Provider</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UMLModelImpl extends FileBasedCustomizableElementImpl implements UMLModel {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIconpath() <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconpath()
+ * @generated
+ * @ordered
+ */
+ protected static final String ICONPATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIconpath() <em>Iconpath</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getIconpath()
+ * @generated
+ * @ordered
+ */
+ protected String iconpath = ICONPATH_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProvider() <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvider()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROVIDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProvider() <em>Provider</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProvider()
+ * @generated
+ * @ordered
+ */
+ protected String provider = PROVIDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UMLModelImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CustomizationPackage.Literals.UML_MODEL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.UML_MODEL__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getIconpath() {
+ return iconpath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIconpath(String newIconpath) {
+ String oldIconpath = iconpath;
+ iconpath = newIconpath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.UML_MODEL__ICONPATH, oldIconpath, iconpath));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription) {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.UML_MODEL__DESCRIPTION, oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProvider() {
+ return provider;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProvider(String newProvider) {
+ String oldProvider = provider;
+ provider = newProvider;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CustomizationPackage.UML_MODEL__PROVIDER, oldProvider, provider));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CustomizationPackage.UML_MODEL__NAME:
+ return getName();
+ case CustomizationPackage.UML_MODEL__ICONPATH:
+ return getIconpath();
+ case CustomizationPackage.UML_MODEL__DESCRIPTION:
+ return getDescription();
+ case CustomizationPackage.UML_MODEL__PROVIDER:
+ return getProvider();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CustomizationPackage.UML_MODEL__NAME:
+ setName((String)newValue);
+ return;
+ case CustomizationPackage.UML_MODEL__ICONPATH:
+ setIconpath((String)newValue);
+ return;
+ case CustomizationPackage.UML_MODEL__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ case CustomizationPackage.UML_MODEL__PROVIDER:
+ setProvider((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.UML_MODEL__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case CustomizationPackage.UML_MODEL__ICONPATH:
+ setIconpath(ICONPATH_EDEFAULT);
+ return;
+ case CustomizationPackage.UML_MODEL__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case CustomizationPackage.UML_MODEL__PROVIDER:
+ setProvider(PROVIDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CustomizationPackage.UML_MODEL__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case CustomizationPackage.UML_MODEL__ICONPATH:
+ return ICONPATH_EDEFAULT == null ? iconpath != null : !ICONPATH_EDEFAULT.equals(iconpath);
+ case CustomizationPackage.UML_MODEL__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ case CustomizationPackage.UML_MODEL__PROVIDER:
+ return PROVIDER_EDEFAULT == null ? provider != null : !PROVIDER_EDEFAULT.equals(provider);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", iconpath: ");
+ result.append(iconpath);
+ result.append(", description: ");
+ result.append(description);
+ result.append(", provider: ");
+ result.append(provider);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UMLModelImpl
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationAdapterFactory.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationAdapterFactory.java
new file mode 100644
index 00000000000..f8beb38f412
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationAdapterFactory.java
@@ -0,0 +1,268 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.papyrus.customization.model.customization.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage
+ * @generated
+ */
+public class CustomizationAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomizationPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CustomizationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CustomizationSwitch<Adapter> modelSwitch =
+ new CustomizationSwitch<Adapter>() {
+ @Override
+ public Adapter caseCustomizationConfiguration(CustomizationConfiguration object) {
+ return createCustomizationConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseCustomizableElement(CustomizableElement object) {
+ return createCustomizableElementAdapter();
+ }
+ @Override
+ public Adapter caseFileBasedCustomizableElement(FileBasedCustomizableElement object) {
+ return createFileBasedCustomizableElementAdapter();
+ }
+ @Override
+ public Adapter casePropertyView(PropertyView object) {
+ return createPropertyViewAdapter();
+ }
+ @Override
+ public Adapter caseUICustom(UICustom object) {
+ return createUICustomAdapter();
+ }
+ @Override
+ public Adapter caseModelTemplate(ModelTemplate object) {
+ return createModelTemplateAdapter();
+ }
+ @Override
+ public Adapter casePalette(Palette object) {
+ return createPaletteAdapter();
+ }
+ @Override
+ public Adapter caseProfile(Profile object) {
+ return createProfileAdapter();
+ }
+ @Override
+ public Adapter caseUMLModel(UMLModel object) {
+ return createUMLModelAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration
+ * @generated
+ */
+ public Adapter createCustomizationConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.CustomizableElement <em>Customizable Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizableElement
+ * @generated
+ */
+ public Adapter createCustomizableElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement <em>File Based Customizable Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement
+ * @generated
+ */
+ public Adapter createFileBasedCustomizableElementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.PropertyView <em>Property View</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.PropertyView
+ * @generated
+ */
+ public Adapter createPropertyViewAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.UICustom <em>UI Custom</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.UICustom
+ * @generated
+ */
+ public Adapter createUICustomAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.ModelTemplate <em>Model Template</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.ModelTemplate
+ * @generated
+ */
+ public Adapter createModelTemplateAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.Palette <em>Palette</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.Palette
+ * @generated
+ */
+ public Adapter createPaletteAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.Profile <em>Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.Profile
+ * @generated
+ */
+ public Adapter createProfileAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.papyrus.customization.model.customization.UMLModel <em>UML Model</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.papyrus.customization.model.customization.UMLModel
+ * @generated
+ */
+ public Adapter createUMLModelAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //CustomizationAdapterFactory
diff --git a/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationSwitch.java b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationSwitch.java
new file mode 100644
index 00000000000..285152b33f4
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src-gen/org/eclipse/papyrus/customization/model/customization/util/CustomizationSwitch.java
@@ -0,0 +1,295 @@
+/**
+ * <copyright>
+ * </copyright>
+ *
+ * $Id$
+ */
+package org.eclipse.papyrus.customization.model.customization.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.customization.model.customization.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.customization.model.customization.CustomizationPackage
+ * @generated
+ */
+public class CustomizationSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static CustomizationPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CustomizationSwitch() {
+ if (modelPackage == null) {
+ modelPackage = CustomizationPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CustomizationPackage.CUSTOMIZATION_CONFIGURATION: {
+ CustomizationConfiguration customizationConfiguration = (CustomizationConfiguration)theEObject;
+ T result = caseCustomizationConfiguration(customizationConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.CUSTOMIZABLE_ELEMENT: {
+ CustomizableElement customizableElement = (CustomizableElement)theEObject;
+ T result = caseCustomizableElement(customizableElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.FILE_BASED_CUSTOMIZABLE_ELEMENT: {
+ FileBasedCustomizableElement fileBasedCustomizableElement = (FileBasedCustomizableElement)theEObject;
+ T result = caseFileBasedCustomizableElement(fileBasedCustomizableElement);
+ if (result == null) result = caseCustomizableElement(fileBasedCustomizableElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.PROPERTY_VIEW: {
+ PropertyView propertyView = (PropertyView)theEObject;
+ T result = casePropertyView(propertyView);
+ if (result == null) result = caseFileBasedCustomizableElement(propertyView);
+ if (result == null) result = caseCustomizableElement(propertyView);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.UI_CUSTOM: {
+ UICustom uiCustom = (UICustom)theEObject;
+ T result = caseUICustom(uiCustom);
+ if (result == null) result = caseFileBasedCustomizableElement(uiCustom);
+ if (result == null) result = caseCustomizableElement(uiCustom);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.MODEL_TEMPLATE: {
+ ModelTemplate modelTemplate = (ModelTemplate)theEObject;
+ T result = caseModelTemplate(modelTemplate);
+ if (result == null) result = caseFileBasedCustomizableElement(modelTemplate);
+ if (result == null) result = caseCustomizableElement(modelTemplate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.PALETTE: {
+ Palette palette = (Palette)theEObject;
+ T result = casePalette(palette);
+ if (result == null) result = caseFileBasedCustomizableElement(palette);
+ if (result == null) result = caseCustomizableElement(palette);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.PROFILE: {
+ Profile profile = (Profile)theEObject;
+ T result = caseProfile(profile);
+ if (result == null) result = caseFileBasedCustomizableElement(profile);
+ if (result == null) result = caseCustomizableElement(profile);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case CustomizationPackage.UML_MODEL: {
+ UMLModel umlModel = (UMLModel)theEObject;
+ T result = caseUMLModel(umlModel);
+ if (result == null) result = caseFileBasedCustomizableElement(umlModel);
+ if (result == null) result = caseCustomizableElement(umlModel);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomizationConfiguration(CustomizationConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Customizable Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Customizable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCustomizableElement(CustomizableElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>File Based Customizable Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>File Based Customizable Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFileBasedCustomizableElement(FileBasedCustomizableElement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property View</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property View</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePropertyView(PropertyView object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>UI Custom</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>UI Custom</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUICustom(UICustom object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Model Template</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Model Template</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseModelTemplate(ModelTemplate object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Palette</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Palette</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePalette(Palette object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Profile</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Profile</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProfile(Profile object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>UML Model</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>UML Model</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUMLModel(UMLModel object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //CustomizationSwitch
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/Activator.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/Activator.java
new file mode 100644
index 00000000000..13815a43095
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/Activator.java
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization;
+
+import org.eclipse.papyrus.log.LogHelper;
+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.customization"; //$NON-NLS-1$
+
+ // The shared instance
+ private static Activator plugin;
+
+ public static LogHelper log;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ @Override
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ log = new LogHelper(this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ @Override
+ 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/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/EnvironmentExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/EnvironmentExtensionFactory.java
new file mode 100644
index 00000000000..7a810c6c77a
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/EnvironmentExtensionFactory.java
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+
+
+public class EnvironmentExtensionFactory extends FileBasedExtensionFactory {
+
+ public EnvironmentExtensionFactory() {
+ super(Messages.EnvironmentExtensionFactory_PropertyViewEnvironment, "org.eclipse.papyrus.properties.Environment", "environmentModel", "environment", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.papyrus.properties"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/environment/" + getFileName(element); //$NON-NLS-1$
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ExtensionFactory.java
new file mode 100644
index 00000000000..7ac17f5f835
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ExtensionFactory.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+
+
+public interface ExtensionFactory {
+
+ public static Registry registry = Registry.instance;
+
+ public static class Registry {
+
+ private static Registry instance = new Registry();
+
+ private final Map<EClass, ExtensionFactory> factories;
+
+ private Registry() {
+ factories = new HashMap<EClass, ExtensionFactory>();
+ factories.put(CustomizationPackage.eINSTANCE.getPropertyView(), new PropertyViewExtensionFactory());
+ factories.put(CustomizationPackage.eINSTANCE.getModelTemplate(), new ModelTemplateExtensionFactory());
+ factories.put(CustomizationPackage.eINSTANCE.getUICustom(), new UICustomExtensionFactory());
+ //factoryMap.put("Palette", new Factory("oep.p", "file", "test", true));
+ //factoryMap.put("PropertyView", ...);
+ factories.put(CustomizationPackage.eINSTANCE.getProfile(), new ProfileExtensionFactory());
+ factories.put(CustomizationPackage.eINSTANCE.getUMLModel(), new UMLModelExtensionFactory());
+ }
+
+ public ExtensionFactory getFactory(EClass type) {
+ return factories.get(type);
+ }
+
+ public void registerFactory(EClass forType, ExtensionFactory factory) {
+ factories.put(forType, factory);
+ }
+
+ public Collection<? extends ExtensionFactory> getFactories() {
+ return factories.values();
+ }
+ }
+
+ public void addElement(CustomizableElement element, ProjectEditor editor);
+
+ public String getName();
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/FileBasedExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/FileBasedExtensionFactory.java
new file mode 100644
index 00000000000..8a9c742ef98
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/FileBasedExtensionFactory.java
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.eclipse.papyrus.customization.Activator;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.eclipse.papyrus.widgets.util.FileUtil;
+import org.w3c.dom.Element;
+
+
+public class FileBasedExtensionFactory implements ExtensionFactory {
+
+ private final String extensionPoint;
+
+ private final String fileAttributeName;
+
+ private final String fileElementName;
+
+ private final boolean allowMultiple;
+
+ private final String name;
+
+ public FileBasedExtensionFactory(String name, String extensionPoint, String fileAttributeName, String fileElementName, boolean allowMultiple) {
+ this.extensionPoint = extensionPoint;
+ this.fileAttributeName = fileAttributeName;
+ this.fileElementName = fileElementName;
+ this.allowMultiple = allowMultiple;
+ this.name = name;
+ }
+
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ createExtension((FileBasedCustomizableElement)element, editor);
+ copyFile((FileBasedCustomizableElement)element, editor);
+ }
+
+ protected Element createExtension(FileBasedCustomizableElement element, ProjectEditor editor) {
+ Element extensionElement = null;
+ if(element instanceof FileBasedCustomizableElement) {
+ Element extension = editor.getPluginEditor().addExtension(extensionPoint);
+ extensionElement = editor.getPluginEditor().addChild(extension, fileElementName);
+ editor.getPluginEditor().setAttribute(extensionElement, fileAttributeName, getTargetPath(element));
+ }
+ return extensionElement;
+ }
+
+ protected void copyFile(FileBasedCustomizableElement element, ProjectEditor editor) {
+ String path = element.getFile();
+ File sourceFile = FileUtil.getFile(path);
+ File targetFile = FileUtil.getWorkspaceFile("/" + editor.getProject().getName() + "/" + getTargetPath(element)); //$NON-NLS-1$ //$NON-NLS-2$
+ if(!targetFile.getParentFile().exists()) {
+ targetFile.getParentFile().mkdirs();
+ }
+
+ try {
+ //System.out.println("TargetFile : " + targetFile.getAbsolutePath());
+ copy(new FileInputStream(sourceFile), targetFile);
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ }
+
+ editor.getBuildEditor().addToBuild(getTargetPath(element));
+ }
+
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/" + getFileName(element); //$NON-NLS-1$
+ }
+
+ protected String getFileName(FileBasedCustomizableElement element) {
+ String path = element.getFile();
+ String fileName;
+ if(path.indexOf("/") < 0) { //$NON-NLS-1$
+ fileName = path;
+ } else {
+ fileName = path.substring(path.lastIndexOf("/") + 1, path.length()); //$NON-NLS-1$
+ }
+ return fileName;
+ }
+
+ protected void copy(InputStream source, File target) throws IOException {
+ if(!target.getParentFile().exists()) {
+ target.getParentFile().mkdirs();
+ }
+
+ FileWriter out = new FileWriter(target);
+ try {
+ int c;
+
+ while((c = source.read()) != -1) {
+ out.write(c);
+ }
+
+ } catch (IOException ex) {
+ throw ex;
+ } finally {
+ source.close();
+ out.close();
+ }
+ }
+
+ public boolean isValidElement(CustomizableElement element) {
+ return element instanceof FileBasedCustomizableElement;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ModelTemplateExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ModelTemplateExtensionFactory.java
new file mode 100644
index 00000000000..ed069b755b2
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ModelTemplateExtensionFactory.java
@@ -0,0 +1,59 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.ModelTemplate;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.w3c.dom.Element;
+
+
+public class ModelTemplateExtensionFactory extends FileBasedExtensionFactory {
+
+ protected ModelTemplateExtensionFactory() {
+ super(Messages.ModelTemplateExtensionFactory_ModelTemplate, "org.eclipse.papyrus.wizards.templates", "file", "template", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.papyrus.wizards.templates"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected Element createExtension(FileBasedCustomizableElement customizableElement, ProjectEditor editor) {
+ Element extension = super.createExtension(customizableElement, editor);
+ if(customizableElement instanceof ModelTemplate) {
+ ModelTemplate element = (ModelTemplate)customizableElement;
+
+ extension.setAttribute("id", element.getId()); //$NON-NLS-1$
+
+ if(element.getName() != null) {
+ extension.setAttribute("name", element.getName()); //$NON-NLS-1$
+ }
+
+ if(element.getLanguage() != null) {
+ extension.setAttribute("language", element.getLanguage()); //$NON-NLS-1$
+ }
+ }
+
+ return extension;
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/modelTemplate/" + getFileName(element); //$NON-NLS-1$
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ProfileExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ProfileExtensionFactory.java
new file mode 100644
index 00000000000..342b898fa26
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/ProfileExtensionFactory.java
@@ -0,0 +1,62 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.Profile;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.w3c.dom.Element;
+
+
+public class ProfileExtensionFactory extends FileBasedExtensionFactory {
+
+ public ProfileExtensionFactory() {
+ super(Messages.ProfileExtensionFactory_Profile, "org.eclipse.papyrus.extensionpoints.uml2.UMLProfile", "path", "profile", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.papyrus.extensionpoints.uml2"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected Element createExtension(FileBasedCustomizableElement element, ProjectEditor editor) {
+ Element extension = super.createExtension(element, editor);
+ Profile profile = (Profile)element;
+
+ extension.setAttribute("name", profile.getName()); //$NON-NLS-1$
+
+ if(profile.getDescription() != null) {
+ extension.setAttribute("description", profile.getDescription()); //$NON-NLS-1$
+ }
+
+ if(profile.getIconpath() != null) {
+ extension.setAttribute("iconpath", profile.getIconpath()); //$NON-NLS-1$
+ }
+
+ if(profile.getProvider() != null) {
+ extension.setAttribute("provider", profile.getProvider()); //$NON-NLS-1$
+ }
+
+ return extension;
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/umlProfile/" + getFileName(element); //$NON-NLS-1$
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/PropertyViewExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/PropertyViewExtensionFactory.java
new file mode 100644
index 00000000000..cc34f5e6802
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/PropertyViewExtensionFactory.java
@@ -0,0 +1,186 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import java.io.File;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.papyrus.customization.Activator;
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.eclipse.papyrus.properties.contexts.Context;
+import org.eclipse.papyrus.properties.util.EMFHelper;
+import org.eclipse.papyrus.widgets.util.FileUtil;
+import org.eclipse.swt.widgets.Display;
+import org.w3c.dom.Element;
+
+
+public class PropertyViewExtensionFactory extends FileBasedExtensionFactory {
+
+ protected IStatus result;
+
+ public PropertyViewExtensionFactory() {
+ super(Messages.PropertyViewExtensionFactory_PropertyView, "org.eclipse.papyrus.properties.Context", "contextModel", "context", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.papyrus.properties"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected Element createExtension(FileBasedCustomizableElement element, ProjectEditor editor) {
+ Element extension = super.createExtension(element, editor);
+ //extension.setAttribute("loadDefault", ((PropertyView)element).isLoadDefault() ? "true" : "false");
+ return extension;
+ }
+
+ @Override
+ protected void copyFile(FileBasedCustomizableElement element, ProjectEditor editor) {
+ String path = element.getFile();
+ File sourceFile = FileUtil.getFile(path);
+ URI uri = URI.createFileURI(sourceFile.getAbsolutePath());
+
+ File targetFile = FileUtil.getWorkspaceFile("/" + editor.getProject().getName() + "/" + getTargetPath(element)); //$NON-NLS-1$ //$NON-NLS-2$
+ if(!targetFile.getParentFile().exists()) {
+ targetFile.getParentFile().mkdirs();
+ }
+
+ try {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ EObject propertyViewModel = EMFHelper.loadEMFModel(resourceSet, uri);
+ copyAll((Context)propertyViewModel, targetFile);
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ }
+
+ // try {
+ // copy(new FileInputStream(sourceFile), targetFile);
+ // } catch (IOException ex) {
+ // Activator.log.error(ex);
+ // }
+ //
+ // editor.getBuildEditor().addToBuild(getTargetPath(element));
+ }
+
+ private void copyAll(final Context source, final File target) {
+ final File targetDirectory = target.getParentFile();
+ final String targetName = target.getName();
+
+ ProgressMonitorDialog dialog = new ProgressMonitorDialog(Display.getCurrent().getActiveShell());
+ try {
+ dialog.run(true, false, new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor) {
+ monitor.beginTask(Messages.PropertyViewExtensionFactory_InitializingCopy + source.getName() + Messages.PropertyViewExtensionFactory_WaitMessage, IProgressMonitor.UNKNOWN);
+ EcoreUtil.resolveAll(source);
+ monitor.done();
+ result = Status.OK_STATUS;
+ }
+ });
+
+ dialog = new ProgressMonitorDialog(Display.getCurrent().getActiveShell());
+
+ if(result.getCode() == IStatus.OK) {
+
+ dialog.run(true, true, new IRunnableWithProgress() {
+
+ public void run(IProgressMonitor monitor) {
+ try {
+ targetDirectory.mkdirs();
+
+ monitor.beginTask(Messages.PropertyViewExtensionFactory_Copying + source.getName() + Messages.PropertyViewExtensionFactory_To + targetName, source.eResource().getResourceSet().getResources().size());
+
+ //Copy of the context
+ copy(source.eResource(), target);
+ monitor.worked(1);
+
+ //Copy of the dependent resources which are located in the same folder
+ //(or subfolders)
+ for(Resource resource : source.eResource().getResourceSet().getResources()) {
+ if(monitor.isCanceled()) {
+ return;
+ }
+ if(source.eResource() != resource && isRelative(source, resource)) {
+ copy(resource, targetDirectory, source, targetName);
+ }
+ monitor.worked(1);
+ }
+
+ monitor.done();
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ result = new Status(IStatus.ERROR, Activator.PLUGIN_ID, "An error occured during the copy of " + source.getName(), ex); //$NON-NLS-1$
+ return;
+ }
+ result = Status.OK_STATUS;
+ }
+ });
+ }
+ } catch (InvocationTargetException ex) {
+ Activator.log.error(ex);
+ } catch (InterruptedException ex) {
+ Activator.log.error(ex);
+ }
+ }
+
+ private boolean isRelative(EObject source, Resource resource) {
+ URI baseURI = source.eResource().getURI();
+ URI resourceURI = resource.getURI();
+ URI uri = resourceURI.deresolve(baseURI);
+ if(uri.isRelative()) {
+ if(!(uri.toString().startsWith("..") || uri.toString().startsWith("/"))) { //$NON-NLS-1$ //$NON-NLS-2$
+ return true;
+ }
+ }
+ return false;
+ }
+
+ protected void copy(Resource resource, File directory, EObject source, String targetName) throws IOException {
+ URI relativeURI = resource.getURI().deresolve(source.eResource().getURI());
+ if(relativeURI.toString().equals("")) { //$NON-NLS-1$
+ relativeURI = URI.createURI(targetName + ".ctx"); //$NON-NLS-1$
+ }
+ File target = new File(directory, relativeURI.toString());
+ copy(resource, target);
+ }
+
+ protected void copy(Resource resource, File target) throws IOException {
+ copy(new URL(resource.getURI().toString()).openStream(), target);
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ String fileName = getFileName(element);
+ String simpleName = fileName.substring(0, fileName.lastIndexOf(".")); //$NON-NLS-1$
+ return "/propertyView/" + simpleName + "/" + fileName; //$NON-NLS-1$ //$NON-NLS-2$
+ //TODO : Copy the whole directory (.xwt files + model dependencies)
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UICustomExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UICustomExtensionFactory.java
new file mode 100644
index 00000000000..85cdcca8ae5
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UICustomExtensionFactory.java
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.UICustom;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.w3c.dom.Element;
+
+
+
+public class UICustomExtensionFactory extends FileBasedExtensionFactory {
+
+ protected UICustomExtensionFactory() {
+ super(Messages.UICustomExtensionFactory_UICustom, "org.eclipse.emf.facet.infra.browser.custom.core.registration", "file", "browserCustomization", true); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.emf.facet.infra.browser.custom"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected Element createExtension(FileBasedCustomizableElement element, ProjectEditor editor) {
+ Element extension = super.createExtension(element, editor);
+ extension.setAttribute("loadByDefault", ((UICustom)element).isLoadByDefault() ? "true" : "false"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ return extension;
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/uiCustom/" + getFileName(element); //$NON-NLS-1$
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UMLModelExtensionFactory.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UMLModelExtensionFactory.java
new file mode 100644
index 00000000000..402585f6ab0
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/factory/UMLModelExtensionFactory.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.factory;
+
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.FileBasedCustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.UMLModel;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+import org.w3c.dom.Element;
+
+
+public class UMLModelExtensionFactory extends FileBasedExtensionFactory {
+
+ public UMLModelExtensionFactory() {
+ super(Messages.UMLModelExtensionFactory_UMLModel, "org.eclipse.papyrus.extensionpoints.uml2.UMLLibrary", "path", "library", false); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ }
+
+ @Override
+ public void addElement(CustomizableElement element, ProjectEditor editor) {
+ super.addElement(element, editor);
+
+ editor.getManifestEditor().addDependency("org.eclipse.papyrus.extensionpoints.uml2"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected Element createExtension(FileBasedCustomizableElement element, ProjectEditor editor) {
+ Element extension = super.createExtension(element, editor);
+ UMLModel model = (UMLModel)element;
+
+ if(model.getDescription() != null) {
+ extension.setAttribute("description", model.getDescription()); //$NON-NLS-1$
+ }
+
+ if(model.getIconpath() != null) {
+ extension.setAttribute("iconpath", model.getIconpath()); //$NON-NLS-1$
+ }
+
+ if(model.getName() != null) {
+ extension.setAttribute("name", model.getName()); //$NON-NLS-1$
+ }
+
+ if(model.getProvider() != null) {
+ extension.setAttribute("provider", model.getProvider()); //$NON-NLS-1$
+ }
+
+ return extension;
+ }
+
+ @Override
+ protected String getTargetPath(FileBasedCustomizableElement element) {
+ return "/umlLibrary/" + getFileName(element); //$NON-NLS-1$
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/generator/PluginGenerator.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/generator/PluginGenerator.java
new file mode 100644
index 00000000000..579956b2917
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/generator/PluginGenerator.java
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.generator;
+
+import java.io.IOException;
+import java.util.Collections;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.papyrus.customization.Activator;
+import org.eclipse.papyrus.customization.factory.ExtensionFactory;
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizableElement;
+import org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration;
+import org.eclipse.papyrus.customization.plugin.ProjectEditor;
+
+public class PluginGenerator {
+
+ public static PluginGenerator instance = new PluginGenerator();
+
+ private final static String PLUGIN_NATURE_ID = "org.eclipse.pde.PluginNature"; //$NON-NLS-1$
+
+ public void generate(IProject project, CustomizationConfiguration configuration) {
+ ProjectEditor editor;
+
+ editor = new ProjectEditor(project);
+
+ editor.addNature(PLUGIN_NATURE_ID);
+
+ for(CustomizableElement element : configuration.getElements()) {
+ ExtensionFactory factory = getFactory(element);
+ if(factory != null) {
+ factory.addElement(element, editor);
+ } else {
+ Activator.log.warn(Messages.PluginGenerator_factoryNotFound + element.eClass());
+ }
+ }
+
+ try {
+ editor.save();
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ return;
+ }
+
+ String pluginId = configuration.getPlugin();
+ Resource resource = configuration.eResource();
+ URI uri = URI.createPlatformResourceURI(pluginId + "/customizationConfiguration.xmi", true); //$NON-NLS-1$
+ if(resource == null) {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resource = resourceSet.createResource(uri);
+ resource.getContents().add(configuration);
+ } else {
+ configuration.eResource().setURI(uri);
+ }
+
+ try {
+ configuration.eResource().save(Collections.EMPTY_MAP);
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ }
+ }
+
+ private ExtensionFactory getFactory(CustomizableElement element) {
+ ExtensionFactory factory = ExtensionFactory.registry.getFactory(element.eClass());
+ return factory;
+ }
+
+ private PluginGenerator() {
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/Messages.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/Messages.java
new file mode 100644
index 00000000000..462a28d0bd1
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/Messages.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.messages;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+
+ private static final String BUNDLE_NAME = "org.eclipse.papyrus.customization.messages.messages"; //$NON-NLS-1$
+
+ public static String UICustomExtensionFactory_UICustom;
+
+ public static String ModelTemplateExtensionFactory_ModelTemplate;
+
+ public static String PluginGenerator_factoryNotFound;
+
+ public static String ProfileExtensionFactory_Profile;
+
+ public static String PropertyViewExtensionFactory_Copying;
+
+ public static String PropertyViewExtensionFactory_InitializingCopy;
+
+ public static String PropertyViewExtensionFactory_PropertyView;
+
+ public static String PropertyViewExtensionFactory_To;
+
+ public static String PropertyViewExtensionFactory_WaitMessage;
+
+ public static String UMLModelExtensionFactory_UMLModel;
+
+ public static String CreateNewCustomizationPluginWizard_CustomizationPlugin;
+
+ public static String CustomizationPage_Customization;
+
+ public static String EnvironmentExtensionFactory_PropertyViewEnvironment;
+
+ static {
+ // initialize resource bundle
+ NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+ }
+
+ private Messages() {
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/messages.properties b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/messages.properties
new file mode 100644
index 00000000000..001f8592925
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/messages/messages.properties
@@ -0,0 +1,13 @@
+UICustomExtensionFactory_UICustom=UI Custom
+ModelTemplateExtensionFactory_ModelTemplate=Model Template
+PluginGenerator_factoryNotFound=Cannot find a factory for
+ProfileExtensionFactory_Profile=Profile
+PropertyViewExtensionFactory_Copying=Copying
+PropertyViewExtensionFactory_InitializingCopy=Initializing the copy of
+PropertyViewExtensionFactory_PropertyView=Property view
+PropertyViewExtensionFactory_To=\ to
+PropertyViewExtensionFactory_WaitMessage=. This may take some time
+UMLModelExtensionFactory_UMLModel=UML Model
+CreateNewCustomizationPluginWizard_CustomizationPlugin=Customization plug-in
+CustomizationPage_Customization=Customization
+EnvironmentExtensionFactory_PropertyViewEnvironment=Property view Environment
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/BuildEditor.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/BuildEditor.java
new file mode 100644
index 00000000000..a9688d3308c
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/BuildEditor.java
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.plugin;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Properties;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.papyrus.widgets.util.FileUtil;
+
+public class BuildEditor {
+
+ private IProject project;
+
+ private Properties buildConfig;
+
+ private File buildFile;
+
+ private final static String BUILD_KEY = "bin.includes"; //$NON-NLS-1$
+
+ public BuildEditor(IProject project) throws IOException {
+ this.project = project;
+
+ buildConfig = new Properties();
+
+ buildFile = FileUtil.getWorkspaceFile("/" + project.getName() + "/build.properties"); //$NON-NLS-1$ //$NON-NLS-2$
+ if(buildFile == null || !buildFile.exists()) {
+ if(!buildFile.getParentFile().exists()) {
+ buildFile.getParentFile().mkdirs();
+ }
+ buildFile.createNewFile();
+ }
+
+ buildConfig.load(new FileInputStream(buildFile));
+ }
+
+ public void addToBuild(String path) {
+ String currentValue = buildConfig.getProperty(BUILD_KEY);
+
+ if(currentValue == null || currentValue.trim().equals("")) { //$NON-NLS-1$
+ buildConfig.setProperty(BUILD_KEY, path);
+ } else {
+ //System.out.println("CurrentValue : \"" + currentValue + "\"");
+ buildConfig.setProperty(BUILD_KEY, currentValue + "," + path); //$NON-NLS-1$
+ }
+ }
+
+ public void save() throws IOException {
+ buildConfig.store(new FileOutputStream(buildFile), ""); //$NON-NLS-1$
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ManifestEditor.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ManifestEditor.java
new file mode 100644
index 00000000000..6d1045ce0a6
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ManifestEditor.java
@@ -0,0 +1,111 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.plugin;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.util.jar.Attributes.Name;
+import java.util.jar.Manifest;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+public class ManifestEditor {
+
+ private IProject project;
+
+ private IFile manifestFile;
+
+ private Manifest manifest;
+
+ public ManifestEditor(IProject project) throws IOException, CoreException {
+ this.project = project;
+ manifestFile = getManifestFile();
+
+ manifest = new Manifest(manifestFile.getContents());
+ }
+
+ public void addDependency(String dependency) {
+ addDependency(dependency, null);
+ }
+
+ public void addDependency(String dependency, String version) {
+ Name rqBundle = new Name("Require-Bundle"); //$NON-NLS-1$
+ String requireBundle = manifest.getMainAttributes().getValue(rqBundle);
+
+ //TODO : Improve the detection of existing dependency
+ //If a.b.c exists, then a.b cannot be added (Because it is already contained)
+ //Moreover, the Manifest allows newlines anywhere (Including in the
+ //middle of a word) : check if these newlines appear in this map,
+ //or if they have already been parsed. If the manifest value is copied as-is in the map,
+ //then we need to take care of newlines when parsing it
+
+ if(requireBundle == null) {
+ requireBundle = dependency;
+ if(version != null) {
+ requireBundle += ";" + version; //$NON-NLS-1$
+ }
+ } else if(!requireBundle.contains(dependency)) {
+ requireBundle += "," + dependency; //$NON-NLS-1$
+ if(version != null) {
+ requireBundle += ";" + version; //$NON-NLS-1$
+ }
+ }
+
+ manifest.getMainAttributes().put(rqBundle, requireBundle);
+ }
+
+ public void setValue(String key, String value) {
+ setValue(key, "", value); //$NON-NLS-1$
+ }
+
+ public void setValue(String key, String name, String value) {
+ manifest.getAttributes(key).put(name, value);
+ }
+
+ public void removeValue(String key, String value) {
+
+ }
+
+ public void removeValue(String key) {
+ manifest.getAttributes(key).remove(key);
+ }
+
+ private IFile getManifestFile() {
+ IFile manifest = project.getFile("META-INF/MANIFEST.MF"); //$NON-NLS-1$
+ if(manifest.exists()) {
+ return manifest;
+ }
+
+ //TODO : Manifest creation not supported
+ return null;
+ }
+
+ public void save() throws IOException, CoreException {
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+
+ manifest.write(os);
+
+ final StringReader reader = new StringReader(os.toString("UTF-8")); //$NON-NLS-1$
+ manifestFile.setContents(new InputStream() {
+
+ @Override
+ public int read() throws IOException {
+ return reader.read();
+ }
+ }, true, true, null);
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/PluginEditor.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/PluginEditor.java
new file mode 100644
index 00000000000..9ade44eaefe
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/PluginEditor.java
@@ -0,0 +1,127 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.plugin;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.papyrus.customization.Activator;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+
+public class PluginEditor {
+
+ private IProject project;
+
+ private Document pluginXML;
+
+ private IFile pluginFile;
+
+ private Element pluginRoot;
+
+ public PluginEditor(IProject project) throws ParserConfigurationException, SAXException, IOException {
+ this.project = project;
+ pluginFile = getPlugin();
+
+ DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder();
+
+ pluginXML = documentBuilder.parse(pluginFile.getLocation().toOSString());
+
+ pluginRoot = pluginXML.getDocumentElement();
+ }
+
+ public Element addExtension(String extensionPoint) {
+ Element extension = pluginXML.createElement("extension"); //$NON-NLS-1$
+ extension.setAttribute("point", extensionPoint); //$NON-NLS-1$
+ pluginRoot.appendChild(extension);
+
+ return extension;
+ }
+
+ public void setAttribute(Element element, String attributeName, String attributeValue) {
+ element.setAttribute(attributeName, attributeValue);
+ }
+
+ public Element addChild(Element element, String childName) {
+ Element child = pluginXML.createElement(childName);
+ element.appendChild(child);
+
+ return child;
+ }
+
+ public void save() throws CoreException, Exception {
+
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ Transformer transformer = transformerFactory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); //$NON-NLS-1$
+ StreamResult result = new StreamResult(new StringWriter());
+ DOMSource source = new DOMSource(pluginXML);
+ transformer.transform(source, result);
+
+ InputStream inputStream = getInputStream(result.getWriter().toString());
+ if(inputStream == null) {
+ throw new Exception("An error occured when modifying plugin.xml ; modifications aborted"); //$NON-NLS-1$
+ }
+
+ pluginFile.setContents(inputStream, true, true, null);
+ }
+
+ private InputStream getInputStream(String text) {
+ if(text == null) {
+ Activator.log.warn("Cannot open an input stream for a null text"); //$NON-NLS-1$
+ return null;
+ }
+
+ final StringReader sr = new StringReader(text);
+ InputStream is = new InputStream() {
+
+ @Override
+ public int read() throws IOException {
+ return sr.read();
+ }
+
+ };
+
+ return is;
+ }
+
+ private IFile getPlugin() {
+ IFile plugin = project.getFile("plugin.xml"); //$NON-NLS-1$
+ if(!plugin.exists()) {
+ InputStream is = getInputStream("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<?eclipse version=\"3.4\"?>\n" + "<plugin>\n" + "</plugin>\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+
+ try {
+ plugin.create(is, true, null);
+ } catch (CoreException ex) {
+ Activator.log.error(ex);
+ }
+ }
+ return plugin;
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ProjectEditor.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ProjectEditor.java
new file mode 100644
index 00000000000..ed2556709d9
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/plugin/ProjectEditor.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.plugin;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IProjectDescription;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.papyrus.customization.Activator;
+
+
+public class ProjectEditor {
+
+ private IProject project;
+
+ private PluginEditor pluginEditor;
+
+ private ManifestEditor manifestEditor;
+
+ private BuildEditor buildEditor;
+
+
+ public ProjectEditor(IProject project) {
+ this.project = project;
+ }
+
+ public IProject getProject() {
+ return project;
+ }
+
+ public PluginEditor getPluginEditor() {
+ if(pluginEditor == null) {
+ try {
+ pluginEditor = new PluginEditor(project);
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ }
+ }
+ return pluginEditor;
+ }
+
+ public ManifestEditor getManifestEditor() {
+ if(manifestEditor == null) {
+ try {
+ manifestEditor = new ManifestEditor(project);
+ } catch (Exception ex) {
+ Activator.log.error(ex);
+ }
+ }
+ return manifestEditor;
+ }
+
+ public BuildEditor getBuildEditor() {
+ if(buildEditor == null) {
+ try {
+ buildEditor = new BuildEditor(project);
+ } catch (IOException ex) {
+ Activator.log.error(ex);
+ }
+ }
+ return buildEditor;
+ }
+
+ public void addNature(String nature) {
+ IProjectDescription description;
+ try {
+ description = project.getDescription();
+ } catch (CoreException ex) {
+ Activator.log.error(ex);
+ return;
+ }
+ List<String> natures = new LinkedList<String>(Arrays.asList(description.getNatureIds()));
+ if(!natures.contains(nature)) {
+ natures.add(nature);
+ }
+ description.setNatureIds(natures.toArray(new String[natures.size()]));
+ }
+
+ public void save() throws Exception {
+ if(pluginEditor != null) {
+ pluginEditor.save();
+ }
+ getManifestEditor().save();
+ getBuildEditor().save();
+ }
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CreateNewCustomizationPluginWizard.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CreateNewCustomizationPluginWizard.java
new file mode 100644
index 00000000000..225b5b8f027
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CreateNewCustomizationPluginWizard.java
@@ -0,0 +1,65 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.wizard;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.papyrus.customization.Activator;
+import org.eclipse.papyrus.customization.generator.PluginGenerator;
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration;
+import org.eclipse.pde.internal.ui.wizards.plugin.NewPluginProjectWizard;
+
+
+public class CreateNewCustomizationPluginWizard extends NewPluginProjectWizard {
+
+ protected CustomizationPage customizationPage;
+
+ public CreateNewCustomizationPluginWizard() {
+ super();
+ setWindowTitle(Messages.CreateNewCustomizationPluginWizard_CustomizationPlugin);
+ }
+
+ @Override
+ public void addPages() {
+ super.addPages();
+ addPage(customizationPage = new CustomizationPage());
+ }
+
+ @Override
+ public IWizardPage getNextPage(IWizardPage page) {
+ if(page == fContentPage) { //Remove the template page
+ return customizationPage;
+ }
+ return super.getNextPage(page);
+ }
+
+ @Override
+ public boolean performFinish() {
+ boolean result = super.performFinish();
+ if(result) {
+ IProject project = this.fMainPage.getProjectHandle();
+ CustomizationConfiguration configuration = this.customizationPage.getConfiguration();
+ configuration.setPlugin(project.getName());
+ PluginGenerator.instance.generate(project, configuration);
+ try {
+ project.refreshLocal(IProject.DEPTH_INFINITE, null);
+ } catch (CoreException ex) {
+ Activator.log.error(ex);
+ }
+ }
+
+ return result;
+ }
+
+}
diff --git a/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CustomizationPage.java b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CustomizationPage.java
new file mode 100644
index 00000000000..b771bf6366f
--- /dev/null
+++ b/incoming/org.eclipse.papyrus.customization/src/org/eclipse/papyrus/customization/wizard/CustomizationPage.java
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (c) 2011 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.customization.wizard;
+
+import java.util.Set;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.papyrus.customization.messages.Messages;
+import org.eclipse.papyrus.customization.model.customization.CustomizationConfiguration;
+import org.eclipse.papyrus.customization.model.customization.CustomizationPackage;
+import org.eclipse.papyrus.properties.contexts.Section;
+import org.eclipse.papyrus.properties.contexts.View;
+import org.eclipse.papyrus.properties.runtime.ConfigurationManager;
+import org.eclipse.papyrus.properties.runtime.ConstraintEngine;
+import org.eclipse.papyrus.properties.runtime.DefaultDisplayEngine;
+import org.eclipse.papyrus.properties.runtime.DisplayEngine;
+import org.eclipse.papyrus.properties.widgets.layout.PropertiesLayout;
+import org.eclipse.papyrus.properties.xwt.XWTSection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+
+
+public class CustomizationPage extends WizardPage {
+
+ private CustomizationConfiguration configuration;
+
+ protected CustomizationPage() {
+ this(null);
+ }
+
+ protected CustomizationPage(CustomizationConfiguration configuration) {
+ super(Messages.CustomizationPage_Customization);
+ this.configuration = configuration;
+ }
+
+ protected void setConfiguration(CustomizationConfiguration configuration) {
+ this.configuration = configuration;
+ }
+
+ public void createControl(Composite parent) {
+ Composite container = new Composite(parent, SWT.NONE);
+ container.setLayout(new PropertiesLayout());
+
+ if(configuration == null) {
+ this.configuration = CustomizationPackage.eINSTANCE.getCustomizationFactory().createCustomizationConfiguration();
+ }
+
+ DisplayEngine displayEngine = new DefaultDisplayEngine(true);
+ IStructuredSelection selection = new StructuredSelection(configuration);
+
+ ConstraintEngine constraintEngine = ConfigurationManager.instance.constraintEngine;
+ Set<View> views = constraintEngine.getViews(selection);
+
+ Composite self = new Composite(container, SWT.BORDER);
+ self.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
+
+ for(View view : views) {
+ for(Section section : view.getSections()) {
+ XWTSection xwtSection = new XWTSection(section, view, displayEngine);
+
+ xwtSection.createControls(self, null);
+ xwtSection.setInput(null, selection);
+ xwtSection.refresh();
+ }
+ }
+
+ setControl(container);
+ }
+
+ @Override
+ public void setVisible(boolean visible) {
+ if(visible) {
+ this.configuration.setPlugin(getWizard().getPluginId());
+ }
+ super.setVisible(visible);
+ }
+
+ @Override
+ public CreateNewCustomizationPluginWizard getWizard() {
+ return (CreateNewCustomizationPluginWizard)super.getWizard();
+ }
+
+ public CustomizationConfiguration getConfiguration() {
+ return configuration;
+ }
+
+}

Back to the top