summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan GEOFFROY2014-07-07 04:55:07 (EDT)
committerJonathan GEOFFROY2014-08-05 11:53:27 (EDT)
commit88fa7bdc17be51b4a7ec5d0226deb14dc7f52ffb (patch)
treec529fa29a913332aa6b7de9cae22d0c850e60fc0
parent5787b36995a4487407f1febf7ba5079e1b14ddb9 (diff)
downloadorg.eclipse.papyrus-88fa7bdc17be51b4a7ec5d0226deb14dc7f52ffb.zip
org.eclipse.papyrus-88fa7bdc17be51b4a7ec5d0226deb14dc7f52ffb.tar.gz
org.eclipse.papyrus-88fa7bdc17be51b4a7ec5d0226deb14dc7f52ffb.tar.bz2
Bug 438066 - [Java Code Generation]Java Code Generation shall allow torefs/changes/08/29408/4
choose the source folder Change-Id: I4b37c874ceb2df2b45f977b70d9df781100de697 Signed-off-by: Jonathan GEOFFROY <geoffroy.jonathan@gmail.com>
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java9
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java40
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF38
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties26
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gifbin0 -> 129 bytes
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties170
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml47
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java89
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java199
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java158
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF40
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties26
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties122
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml76
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java423
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java1818
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java91
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java628
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF13
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di2
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore12
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel40
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation36
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml17
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di106
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml8
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java53
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java172
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java61
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java106
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java216
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java174
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java131
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java121
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto5
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java5
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java4
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java1
-rw-r--r--extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java7
-rw-r--r--plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.xtext/xtend-gen/org/eclipse/papyrus/infra/gmfdiag/generator/CSSGenerator.java28
40 files changed, 4884 insertions, 434 deletions
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
index 6ef3958..fabbfdf 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/GeneratorPreference.java
@@ -60,11 +60,18 @@ public interface GeneratorPreference {
* @return generic class to use for the association * (multi-value)
*/
public String genericClassForMultiValue();
-
+
/**
* Return true if we want to stop on first error, false if we want to continue anyway.
+ *
* @return
*/
public boolean stopOnFirstError();
+ /**
+ *
+ * @return the default source folder name where the generator have to generate Java files and packages.
+ */
+ public String defaultSourceFolderName();
+
}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
index 383b78b..cf228f3 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.jdtsynchronizer/src/org/eclipse/papyrus/java/generator/jdtsynchronizer/RunGenerator.java
@@ -18,8 +18,10 @@ package org.eclipse.papyrus.java.generator.jdtsynchronizer;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.OutputStreamWriter;
import java.util.List;
+import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
@@ -37,7 +39,11 @@ import org.eclipse.m2m.qvt.oml.ExecutionContextImpl;
import org.eclipse.m2m.qvt.oml.ExecutionDiagnostic;
import org.eclipse.m2m.qvt.oml.ModelExtent;
import org.eclipse.m2m.qvt.oml.TransformationExecutor;
+import org.eclipse.m2m.qvt.oml.util.Log;
+import org.eclipse.m2m.qvt.oml.util.WriterLog;
import org.eclipse.papyrus.java.generator.jdtsynchronizer.impl.SynchJDTJavaModel;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaElement;
import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JDTJavaModel;
import org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.JdtmmPackage;
@@ -86,11 +92,14 @@ public class RunGenerator {
* @throws JDTVisitorException
*/
public void runGeneration(GeneratorPreference preference) throws JDTVisitorException {
+ // Create an options model using the Eclipse Preferences
+ EList<EObject> inOptions = createOptionModelFromEclipsePreferences(preference);
+
// Refer to an existing transformation via URI
final URI scriptUri =
URI.createURI("platform:/plugin/" + UmltojdtActivator.PLUGIN_ID + UmltojdtActivator.PATH_QVT_FILE);
- List<EObject> outObjects = runTransformation(scriptUri, inObjects);
+ List<EObject> outObjects = runTransformation(scriptUri, inObjects, inOptions);
if(outObjects.size() == 0) {
throw new JDTVisitorException("No classes or packages produced from the transformation. Nothing is generated.");
@@ -124,16 +133,36 @@ public class RunGenerator {
}
/**
+ * Create a new GeneratorOptions model and inject eclipse preferences on it.
+ * @param preference eclipse preferences
+ * @return a new instance of Options, where options.defaultSourceFolder have been initialized.
+ */
+ private EList<EObject> createOptionModelFromEclipsePreferences(GeneratorPreference preference) {
+ GeneratoroptionsmmFactory optionsFactory = GeneratoroptionsmmFactory.eINSTANCE;
+
+ // Create a new Options object and inject the default source folder name from Eclipse preferences
+ Options options = optionsFactory.createOptions();
+ options.setDefaultSourceFolder(preference.defaultSourceFolderName());
+
+ // Add options to the model
+ EList<EObject> optionsContents = new BasicEList<EObject>(1);
+ optionsContents.add(options);
+
+ return optionsContents;
+ }
+
+ /**
* Run QVTo transformation using the scriptUri and the inObjects model
*
* @param scriptUri
* The script QVTo
* @param inObjects
* The entry model
+ * @param inOptions2
* @return The output model
*/
- private List<EObject> runTransformation(URI scriptUri, EList<EObject> inObjects) {
- // initialise the transformation
+ private List<EObject> runTransformation(URI scriptUri, EList<EObject> inObjects, EList<EObject> inOptions) {
+ // initialize the transformation
//First, you need to instantiate a Registry:
EPackage.Registry registry = new EPackageRegistryImpl(EPackage.Registry.INSTANCE);
@@ -144,13 +173,14 @@ public class RunGenerator {
// class which allow to execute the transformation
TransformationExecutor t = new TransformationExecutor(scriptUri, registry);
- ExecutionContext executionContext = new ExecutionContextImpl();
+ ExecutionContextImpl executionContext = new ExecutionContextImpl();
// allow to contains the model uml
ModelExtent input = new BasicModelExtent(inObjects);
+ ModelExtent inputOptions = new BasicModelExtent(inOptions);
ModelExtent output = new BasicModelExtent();
// make the transformation
- ExecutionDiagnostic executionDiagnostic = t.execute(executionContext, input, output);
+ ExecutionDiagnostic executionDiagnostic = t.execute(executionContext, input, inputOptions, output);
// the errors
System.out.println(executionDiagnostic.getMessage());
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
index a9ac89b..dd8019b 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/META-INF/MANIFEST.MF
@@ -1,20 +1,18 @@
-Manifest-Version: 1.0
-Require-Bundle: org.eclipse.papyrus.java.generator.metamodel.jdt;bundle-version="1.0.0";visibility:=reexport,
- org.eclipse.emf.edit;visibility:=reexport,
- org.eclipse.uml2.common.edit;visibility:=reexport,
- org.eclipse.core.runtime
-Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm
- .provider
-Bundle-Vendor: %providerName
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Name: %pluginName
-Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.jdt
- mm.provider.JdtmmEditPlugin$Implementation
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.
- edit;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.java.generator.metamodel.jdt;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport,
+ org.eclipse.uml2.common.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
index 890b147..6e3e902 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/build.properties
@@ -1,16 +1,10 @@
-
-# <copyright>
-# </copyright>
-#
-# $Id$
-
-bin.includes = .,\
- icons/,\
- META-INF/,\
- plugin.xml,\
- plugin.properties,\
- about.html
-jars.compile.order = .
-source.. = src/
-output.. = bin/
-src.includes = about.html
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif
new file mode 100644
index 0000000..cdd3b76
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/icons/full/obj16/Options.gif
Binary files differ
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
index 1e5303e..2e13d49 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.properties
@@ -1,148 +1,22 @@
-#################################################################################
-# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
-#
-# 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:
-# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
-# Manuel Giles giles.manu@live.fr - Initial API and implementation
-# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
-#
-#################################################################################
-
-pluginName = Jdt metamodel edit (Incubation)
-providerName = Eclipse Modeling Project
-
-
-
-_UI_CreateChild_text = {0}
-_UI_CreateChild_text2 = {1} {0}
-_UI_CreateChild_text3 = {1}
-_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
-_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
-_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
-
-_UI_PropertyDescriptor_description = The {0} of the {1}
-
-_UI_JDTJavaElement_type = JDT Java Element
-_UI_JDTParent_type = JDT Parent
-_UI_JDTMember_type = JDT Member
-_UI_JDTField_type = JDT Field
-_UI_JDTType_type = JDT Type
-_UI_JDTMethod_type = JDT Method
-_UI_JDTClass_type = JDT Class
-_UI_JDTInterface_type = JDT Interface
-_UI_JDTEnum_type = JDT Enum
-_UI_JDTTypeRoot_type = JDT Type Root
-_UI_JDTCompilationUnit_type = JDT Compilation Unit
-_UI_JDTImportDeclaration_type = JDT Import Declaration
-_UI_JDTImportContainer_type = JDT Import Container
-_UI_JDTParameter_type = JDT Parameter
-_UI_JDTPackageFragment_type = JDT Package Fragment
-_UI_JDTPackageFragmentRoot_type = JDT Package Fragment Root
-_UI_Unknown_type = Object
-
-_UI_Unknown_datatype= Value
-
-_UI_JDTJavaElement_parent_feature = Parent
-_UI_JDTParent_children_feature = Children
-_UI_JDTField_owner_feature = Owner
-_UI_JDTType_methods_feature = Methods
-_UI_JDTType_fields_feature = Fields
-_UI_JDTMethod_owner_feature = Owner
-_UI_Unknown_feature = Unspecified
-
-_UI_JDTType_compilationUnit_feature = Compilation Unit
-_UI_JDTCompilationUnit_packageFragment_feature = Package Fragment
-_UI_JDTCompilationUnit_types_feature = Types
-_UI_JDTPackageFragment_packageFragmentRoot_feature = Package Fragment Root
-_UI_JDTPackageFragment_compilationUnits_feature = Compilation Units
-_UI_JDTPackageFragmentRoot_packageFragments_feature = Package Fragments
-_UI_JDTJavaElement_elementName_feature = Element Name
-_UI_JDTJavaElement_elementType_feature = Element Type
-_UI_JDTJavaElement_comment_feature = Comment
-_UI_JDTParent_flag_feature = Flag
-_UI_JDTType_class_feature = Class
-_UI_JDTType_interface_feature = Interface
-_UI_JDTType_enum_feature = Enum
-_UI_boolean_true_literal = true
-_UI_boolean_false_literal = false
-_UI_JDTType_abstract_feature = Abstract
-_UI_JDTType_final_feature = Final
-_UI_JDTParent_flags_feature = Flags
-_UI_JDTType_static_feature = Static
-_UI_JDTType_types_feature = Types
-_UI_JDTType_owner_feature = Owner
-_UI_JDTParentJavaElement_type = JDT Parent Java Element
-_UI_JDTJavaProject_type = JDT Java Project
-_UI_JDTJavaModel_type = JDT Java Model
-_UI_JDTPackageFragmentRoot_javaProject_feature = Java Project
-_UI_JDTJavaProject_packageFragmentRoots_feature = Package Fragment Roots
-_UI_JDTJavaProject_javaModel_feature = Java Model
-_UI_JDTJavaModel_javaProject_feature = Java Project
-<<<<<<< .mine
-_UI_JDTTypeParameter_type = JDT Type Parameter
-_UI_JDTException_type = JDT Exception
-_UI_JDTMember_typeParameters_feature = Type Parameters
-_UI_JDTTypeParameter_declaringMember_feature = Declaring Member
-_UI_JDTType_superInterfaces_feature = Super Interfaces
-_UI_JDTType_superClass_feature = Super Class
-_UI_JDTType_superInterfaceNames_feature = Super Interface Names
-_UI_JDTType_superClassName_feature = Super Class Name
-_UI_JDTMethod_returnType_feature = Return Type
-_UI_JDTMethod_parameters_feature = Parameters
-_UI_JDTMethod_exceptions_feature = Exceptions
-_UI_JDTParameter_parameterOwner_feature = Parameter Owner
-_UI_JDTParameter_types_feature = Types
-_UI_JDTParameter_returnOwner_feature = Return Owner
-_UI_JDTField_type_feature = Type
-_UI_JDTField_abstract_feature = Abstract
-_UI_JDTField_final_feature = Final
-_UI_JDTField_static_feature = Static
-_UI_JDTField_isMultiValued_feature = Is Multi Valued
-_UI_JDTMethod_abstract_feature = Abstract
-_UI_JDTMethod_final_feature = Final
-_UI_JDTMethod_static_feature = Static
-_UI_JDTParameter_final_feature = Final
-_UI_JDTParameter_isMultiValued_feature = Is Multi Valued
-_UI_JDTParameter_type_feature = Type
-_UI_JDTType_method_feature = Method
-=======
-_UI_JDTJavaElement_generated_feature = Generated
-_UI_JDTType_superClass_feature = Super Class
-_UI_JDTType_superInterfaces_feature = Super Interfaces
-_UI_JDTField_type_feature = Type
-_UI_JDTMethod_parameters_feature = Parameters
-_UI_JDTMethod_returnType_feature = Return Type
-_UI_JDTMethod_exceptions_feature = Exceptions
-_UI_JDTParameter_type_feature = Type
-_UI_JDTParameter_owner_feature = Owner
-_UI_JDTPackageFragment_packageFragment_feature = Package Fragment
-_UI_JDTPackageFragment_packageFragments_feature = Package Fragments
->>>>>>> .r233
-_UI_JDTMember_visibility_feature = Visibility
-_UI_VisibilityKind_public_literal = public
-_UI_VisibilityKind_protected_literal = protected
-_UI_VisibilityKind_private_literal = private
-_UI_JDTField_value_feature = Value
-_UI_JDTField_generateGetter_feature = Generate Getter
-_UI_JDTField_generateSetter_feature = Generate Setter
-_UI_TrueFalseDefault_true_literal = true
-_UI_TrueFalseDefault_false_literal = false
-_UI_TrueFalseDefault_default_literal = default
-_UI_JDTMethod_synchronized_feature = Synchronized
-_UI_JDTMethod_constructor_feature = Constructor
-_UI_MethodBody_type = Method Body
-_UI_OpaqueMethodBody_type = Opaque Method Body
-_UI_MethodBody_owner_feature = Owner
-_UI_JDTMethod_bodies_feature = Bodies
-_UI_OpaqueMethodBody__body_feature = body
-_UI_JDTMethodBody_type = JDT Method Body
-_UI_JDTOpaqueBody_type = JDT Opaque Body
-_UI_JDTMethodBody_owner_feature = Owner
-_UI_JDTOpaqueBody__body_feature = body
-_UI_JDTMember_explicitRequiredImports_feature = Explicit Required Imports
-_UI_JDTMember_explicitPlainTextRequiredImports_feature = Explicit Plain Text Required Imports
+#
+
+pluginName = Generatoroptionsmm Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Options_type = Options
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_Options_defaultSourceFolder_feature = Default Source Folder
+_UI_Unknown_feature = Unspecified
+
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
index 0e0303f..df8624c 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/plugin.xml
@@ -1,25 +1,22 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
- <copyright>
- </copyright>
-
- $Id$
--->
-
-<plugin>
-
- <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
- <factory
- uri="http:///jdtmm.ecore"
- class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.provider.JdtmmItemProviderAdapterFactory"
- supportedTypes=
- "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
- org.eclipse.emf.edit.provider.IStructuredItemContentProvider
- org.eclipse.emf.edit.provider.ITreeItemContentProvider
- org.eclipse.emf.edit.provider.IItemLabelProvider
- org.eclipse.emf.edit.provider.IItemPropertySource"/>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated generatoroptionsmm -->
+ <factory
+ uri="http:///GeneratorOptionsMM.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java
new file mode 100644
index 0000000..8393cef
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmEditPlugin.java
@@ -0,0 +1,89 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Generatoroptionsmm edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class GeneratoroptionsmmEditPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final GeneratoroptionsmmEditPlugin INSTANCE = new GeneratoroptionsmmEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmEditPlugin() {
+ super
+ (new ResourceLocator [] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java
new file mode 100644
index 0000000..6a19c91
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/GeneratoroptionsmmItemProviderAdapterFactory.java
@@ -0,0 +1,199 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util.GeneratoroptionsmmAdapterFactory;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmItemProviderAdapterFactory extends GeneratoroptionsmmAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable {
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmItemProviderAdapterFactory() {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OptionsItemProvider optionsItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOptionsAdapter() {
+ if (optionsItemProvider == null) {
+ optionsItemProvider = new OptionsItemProvider(this);
+ }
+
+ return optionsItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory() {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory) {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type) {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type) {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type) {
+ if (isFactoryForType(type)) {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter))) {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener) {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification) {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null) {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose() {
+ if (optionsItemProvider != null) optionsItemProvider.dispose();
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java
new file mode 100644
index 0000000..d1746ab
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.edit/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/provider/OptionsItemProvider.java
@@ -0,0 +1,158 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OptionsItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource {
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OptionsItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addDefaultSourceFolderPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Default Source Folder feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDefaultSourceFolderPropertyDescriptor(Object object) {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Options_defaultSourceFolder_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Options_defaultSourceFolder_feature", "_UI_Options_type"),
+ GeneratoroptionsmmPackage.Literals.OPTIONS__DEFAULT_SOURCE_FOLDER,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Options.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Options"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((Options)object).getDefaultSourceFolder();
+ return label == null || label.length() == 0 ?
+ getString("_UI_Options_type") :
+ getString("_UI_Options_type") + " " + label;
+ }
+
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Options.class)) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator() {
+ return GeneratoroptionsmmEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
index 9bf4b3f..2452286 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/META-INF/MANIFEST.MF
@@ -1,22 +1,18 @@
-Manifest-Version: 1.0
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources;visibility:=reexport,
- org.eclipse.papyrus.java.generator.metamodel.jdt.edit;bundle-version="1.0.0";visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport,
- org.eclipse.emf.edit.ui;visibility:=reexport,
- org.eclipse.ui.ide;visibility:=reexport
-Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm
- .presentation
-Bundle-Vendor: %providerName
-Bundle-ActivationPolicy: lazy
-Bundle-ClassPath: .
-Bundle-Version: 1.0.0.qualifier
-Bundle-Localization: plugin
-Bundle-Name: %pluginName
-Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.jdt
- mm.presentation.JdtmmEditorPlugin$Implementation
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.
- editor;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
index e0979c7..5fb0771 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/build.properties
@@ -1,16 +1,10 @@
-
-# <copyright>
-# </copyright>
-#
-# $Id$
-
-bin.includes = .,\
- icons/,\
- META-INF/,\
- plugin.xml,\
- plugin.properties,\
- about.html
-jars.compile.order = .
-source.. = src/
-output.. = bin
-src.includes = about.html
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
index 6ada727..68e9234 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.properties
@@ -1,69 +1,53 @@
-
-#################################################################################
-# Copyright (c) 2011 Nicolas Deblock & Manuel Giles.
-#
-# 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:
-# Nicolas Deblock nico.deblock@gmail.com - Initial API and implementation
-# Manuel Giles giles.manu@live.fr - Initial API and implementation
-# Cedric Dumoulin Cedric.dumoulin@lifl.fr - Idea of the java generator project & help for the conception
-#
-#################################################################################
-
-
-pluginName = Jdt metamodel editor (Incubation)
-providerName = Eclipse Modeling Project
-
-
-_UI_JdtmmEditor_menu = &Jdtmm Editor
-
-_UI_CreateChild_menu_item = &New Child
-_UI_CreateSibling_menu_item = N&ew Sibling
-
-_UI_ShowPropertiesView_menu_item = Show &Properties View
-_UI_RefreshViewer_menu_item = &Refresh
-
-_UI_SelectionPage_label = Selection
-_UI_ParentPage_label = Parent
-_UI_ListPage_label = List
-_UI_TreePage_label = Tree
-_UI_TablePage_label = Table
-_UI_TreeWithColumnsPage_label = Tree with Columns
-_UI_ObjectColumn_label = Object
-_UI_SelfColumn_label = Self
-
-_UI_NoObjectSelected = Selected Nothing
-_UI_SingleObjectSelected = Selected Object: {0}
-_UI_MultiObjectSelected = Selected {0} Objects
-
-_UI_OpenEditorError_label = Open Editor
-
-_UI_Wizard_category = Example EMF Model Creation Wizards
-
-_UI_CreateModelError_message = Problems encountered in file "{0}"
-
-_UI_JdtmmModelWizard_label = Jdtmm Model
-_UI_JdtmmModelWizard_description = Create a new Jdtmm model
-
-_UI_JdtmmEditor_label = Jdtmm Model Editor
-
-_UI_JdtmmEditorFilenameDefaultBase = My
-_UI_JdtmmEditorFilenameExtensions = jdtmm
-
-_UI_Wizard_label = New
-
-_WARN_FilenameExtension = The file name must end in ''.{0}''
-_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
-
-_UI_ModelObject = &Model Object
-_UI_XMLEncoding = &XML Encoding
-_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
-_UI_Wizard_initial_object_description = Select a model object to create
-
-_UI_FileConflict_label = File Conflict
-_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
-
+#
+
+pluginName = Generatoroptionsmm Editor
+providerName = www.example.org
+
+_UI_GeneratoroptionsmmEditor_menu = &Generatoroptionsmm Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_GeneratoroptionsmmModelWizard_label = Generatoroptionsmm Model
+_UI_GeneratoroptionsmmModelWizard_description = Create a new Generatoroptionsmm model
+
+_UI_GeneratoroptionsmmEditor_label = Generatoroptionsmm Model Editor
+
+_UI_GeneratoroptionsmmEditorFilenameDefaultBase = My
+_UI_GeneratoroptionsmmEditorFilenameExtensions = generatoroptionsmm
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
index cbca060..811f7e9 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/plugin.xml
@@ -1,39 +1,37 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-
-<!--
- <copyright>
- </copyright>
-
- $Id$
--->
-
-<plugin>
-
- <extension point="org.eclipse.ui.newWizards">
- <category
- id="org.eclipse.emf.ecore.Wizard.category.ID"
- name="%_UI_Wizard_category"/>
- <wizard
- id="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmModelWizardID"
- name="%_UI_JdtmmModelWizard_label"
- class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmModelWizard"
- category="org.eclipse.emf.ecore.Wizard.category.ID"
- icon="icons/full/obj16/JdtmmModelFile.gif">
- <description>%_UI_JdtmmModelWizard_description</description>
- <selection class="org.eclipse.core.resources.IResource"/>
- </wizard>
- </extension>
-
- <extension point="org.eclipse.ui.editors">
- <editor
- id="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmEditorID"
- name="%_UI_JdtmmEditor_label"
- icon="icons/full/obj16/JdtmmModelFile.gif"
- extensions="jdtmm"
- class="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmEditor"
- contributorClass="org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.presentation.JdtmmActionBarContributor">
- </editor>
- </extension>
-
-</plugin>
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <!-- @generated generatoroptionsmm -->
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmModelWizardID"
+ name="%_UI_GeneratoroptionsmmModelWizard_label"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmModelWizard"
+ category="org.eclipse.emf.ecore.Wizard.category.ID"
+ icon="icons/full/obj16/GeneratoroptionsmmModelFile.gif">
+ <description>%_UI_GeneratoroptionsmmModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated generatoroptionsmm -->
+ <editor
+ id="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditorID"
+ name="%_UI_GeneratoroptionsmmEditor_label"
+ icon="icons/full/obj16/GeneratoroptionsmmModelFile.gif"
+ extensions="generatoroptionsmm"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmEditor"
+ contributorClass="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation.GeneratoroptionsmmActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java
new file mode 100644
index 0000000..728d3d2
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmActionBarContributor.java
@@ -0,0 +1,423 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Generatoroptionsmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener {
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item")) {
+ @Override
+ public void run() {
+ try {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item")) {
+ @Override
+ public boolean isEnabled() {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run() {
+ if (activeEditorPart instanceof IViewerProvider) {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null) {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmActionBarContributor() {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager) {
+ toolBarManager.add(new Separator("generatoroptionsmm-settings"));
+ toolBarManager.add(new Separator("generatoroptionsmm-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager) {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditor_menu"), "org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmmMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener() {
+ public void menuAboutToShow(IMenuManager menuManager) {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part) {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null) {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null) {
+ selectionProvider = null;
+ }
+ else {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null) {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event) {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null) {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null) {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1) {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null) {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null) {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection) {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null) {
+ for (Object descriptor : descriptors) {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID) {
+ if (actions != null) {
+ for (IAction action : actions) {
+ if (contributionID != null) {
+ manager.insertBefore(contributionID, action);
+ }
+ else {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions) {
+ if (actions != null) {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++) {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem) {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem) {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action)) {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager) {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager) {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete() {
+ return true;
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java
new file mode 100644
index 0000000..4b7ac23
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditor.java
@@ -0,0 +1,1818 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+
+import org.eclipse.jface.util.LocalSelectionTransfer;
+
+import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ListViewer;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TableLayout;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.custom.CTabFolder;
+
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+
+import org.eclipse.swt.graphics.Point;
+
+import org.eclipse.swt.layout.FillLayout;
+
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+
+import org.eclipse.ui.dialogs.SaveAsDialog;
+
+import org.eclipse.ui.ide.IGotoMarker;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.ViewerPane;
+
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+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.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmItemProviderAdapterFactory;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+
+/**
+ * This is an example of a Generatoroptionsmm model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmEditor
+ extends MultiPageEditorPart
+ implements IEditingDomainProvider, ISelectionProvider, IMenuListener, IViewerProvider, IGotoMarker {
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This inverts the roll of parent and child in the content provider and show parents as a tree.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer parentViewer;
+
+ /**
+ * This shows how a tree view works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewer;
+
+ /**
+ * This shows how a list view works.
+ * A list viewer doesn't support icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ListViewer listViewer;
+
+ /**
+ * This shows how a table view works.
+ * A table can be used as a list with icons.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TableViewer tableViewer;
+
+ /**
+ * This shows how a tree view with columns works.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer treeViewerWithColumns;
+
+ /**
+ * This keeps track of the active viewer pane, in the book.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ViewerPane currentViewerPane;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener =
+ new IPartListener() {
+ public void partActivated(IWorkbenchPart p) {
+ if (p instanceof ContentOutline) {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage) {
+ getActionBarContributor().setActiveEditor(GeneratoroptionsmmEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet) {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage())) {
+ getActionBarContributor().setActiveEditor(GeneratoroptionsmmEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == GeneratoroptionsmmEditor.this) {
+ handleActivate();
+ }
+ }
+ public void partBroughtToTop(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partClosed(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partDeactivated(IWorkbenchPart p) {
+ // Ignore.
+ }
+ public void partOpened(IWorkbenchPart p) {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter =
+ new EContentAdapter() {
+ @Override
+ public void notifyChanged(Notification notification) {
+ if (notification.getNotifier() instanceof Resource) {
+ switch (notification.getFeatureID(Resource.class)) {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS: {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target) {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target) {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener =
+ new IResourceChangeListener() {
+ public void resourceChanged(IResourceChangeEvent event) {
+ IResourceDelta delta = event.getDelta();
+ try {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta) {
+ if (delta.getResource().getType() == IResource.FILE) {
+ if (delta.getKind() == IResourceDelta.REMOVED ||
+ delta.getKind() == IResourceDelta.CHANGED && delta.getFlags() != IResourceDelta.MARKERS) {
+ Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null) {
+ if (delta.getKind() == IResourceDelta.REMOVED) {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource)) {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources() {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources() {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty()) {
+ getSite().getPage().closeEditor(GeneratoroptionsmmEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty()) {
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == GeneratoroptionsmmEditor.this) {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate() {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null) {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty()) {
+ if (handleDirtyConflict()) {
+ getSite().getPage().closeEditor(GeneratoroptionsmmEditor.this, false);
+ }
+ else {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty()) {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources() {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict())) {
+ if (isDirty()) {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources) {
+ if (resource.isLoaded()) {
+ resource.unload();
+ try {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception) {
+ if (!resourceToDiagnosticMap.containsKey(resource)) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection)) {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication() {
+ if (updateProblemIndication) {
+ BasicDiagnostic diagnostic =
+ new BasicDiagnostic
+ (Diagnostic.OK,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ null,
+ new Object [] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values()) {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK) {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart) {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK) {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet())) {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ try {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict() {
+ return
+ MessageDialog.openQuestion
+ (getSite().getShell(),
+ getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmEditor() {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain() {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new GeneratoroptionsmmItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener
+ (new CommandStackListener() {
+ public void commandStackChanged(final EventObject event) {
+ getContainer().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null) {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed()) {
+ i.remove();
+ }
+ else {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action) {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection) {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty()) {
+ Runnable runnable =
+ new Runnable() {
+ public void run() {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null) {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getElements(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object [] getChildren(Object object) {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object) {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object) {
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewerPane(ViewerPane viewerPane) {
+ if (currentViewerPane != viewerPane) {
+ if (currentViewerPane != null) {
+ currentViewerPane.showFocus(false);
+ }
+ currentViewerPane = viewerPane;
+ }
+ setCurrentViewer(currentViewerPane.getViewer());
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer) {
+ // If it is changing...
+ //
+ if (currentViewer != viewer) {
+ if (selectionChangedListener == null) {
+ // Create the listener on demand.
+ //
+ selectionChangedListener =
+ new ISelectionChangedListener() {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent) {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null) {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null) {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer() {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer) {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu= contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel() {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e) {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception) {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty()) {
+ BasicDiagnostic basicDiagnostic =
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object [] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null) {
+ return
+ new BasicDiagnostic
+ (Diagnostic.ERROR,
+ "org.eclipse.papyrus.java.generator.metamodel.jdt.editor",
+ 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception });
+ }
+ else {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void createPages() {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty()) {
+ // Create a page for the selection tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ selectionViewer = (TreeViewer)viewerPane.getViewer();
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ viewerPane.setTitle(editingDomain.getResourceSet());
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+ }
+
+ // Create a page for the parent tree view.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ Tree tree = new Tree(composite, SWT.MULTI);
+ TreeViewer newTreeViewer = new TreeViewer(tree);
+ return newTreeViewer;
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ parentViewer = (TreeViewer)viewerPane.getViewer();
+ parentViewer.setAutoExpandLevel(30);
+ parentViewer.setContentProvider(new ReverseAdapterFactoryContentProvider(adapterFactory));
+ parentViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(parentViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ParentPage_label"));
+ }
+
+ // This is the page for the list viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new ListViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ listViewer = (ListViewer)viewerPane.getViewer();
+ listViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ listViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(listViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_ListPage_label"));
+ }
+
+ // This is the page for the tree viewer
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ treeViewer = (TreeViewer)viewerPane.getViewer();
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ new AdapterFactoryTreeEditor(treeViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(treeViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreePage_label"));
+ }
+
+ // This is the page for the table viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TableViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+ tableViewer = (TableViewer)viewerPane.getViewer();
+
+ Table table = tableViewer.getTable();
+ TableLayout layout = new TableLayout();
+ table.setLayout(layout);
+ table.setHeaderVisible(true);
+ table.setLinesVisible(true);
+
+ TableColumn objectColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(3, 100, true));
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+
+ TableColumn selfColumn = new TableColumn(table, SWT.NONE);
+ layout.addColumnData(new ColumnWeightData(2, 100, true));
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+
+ tableViewer.setColumnProperties(new String [] {"a", "b"});
+ tableViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ tableViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(tableViewer);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TablePage_label"));
+ }
+
+ // This is the page for the table tree viewer.
+ //
+ {
+ ViewerPane viewerPane =
+ new ViewerPane(getSite().getPage(), GeneratoroptionsmmEditor.this) {
+ @Override
+ public Viewer createViewer(Composite composite) {
+ return new TreeViewer(composite);
+ }
+ @Override
+ public void requestActivation() {
+ super.requestActivation();
+ setCurrentViewerPane(this);
+ }
+ };
+ viewerPane.createControl(getContainer());
+
+ treeViewerWithColumns = (TreeViewer)viewerPane.getViewer();
+
+ Tree tree = treeViewerWithColumns.getTree();
+ tree.setLayoutData(new FillLayout());
+ tree.setHeaderVisible(true);
+ tree.setLinesVisible(true);
+
+ TreeColumn objectColumn = new TreeColumn(tree, SWT.NONE);
+ objectColumn.setText(getString("_UI_ObjectColumn_label"));
+ objectColumn.setResizable(true);
+ objectColumn.setWidth(250);
+
+ TreeColumn selfColumn = new TreeColumn(tree, SWT.NONE);
+ selfColumn.setText(getString("_UI_SelfColumn_label"));
+ selfColumn.setResizable(true);
+ selfColumn.setWidth(200);
+
+ treeViewerWithColumns.setColumnProperties(new String [] {"a", "b"});
+ treeViewerWithColumns.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewerWithColumns.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+
+ createContextMenuFor(treeViewerWithColumns);
+ int pageIndex = addPage(viewerPane.getControl());
+ setPageText(pageIndex, getString("_UI_TreeWithColumnsPage_label"));
+ }
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener
+ (new ControlAdapter() {
+ boolean guard = false;
+ @Override
+ public void controlResized(ControlEvent event) {
+ if (!guard) {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs() {
+ if (getPageCount() <= 1) {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs() {
+ if (getPageCount() > 1) {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder) {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex) {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null) {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key) {
+ if (key.equals(IContentOutlinePage.class)) {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class)) {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class)) {
+ return this;
+ }
+ else {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage() {
+ if (contentOutlinePage == null) {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage {
+ @Override
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty()) {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager, IStatusLineManager statusLineManager) {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener
+ (new ISelectionChangedListener() {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event) {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage() {
+ PropertySheetPage propertySheetPage =
+ new ExtendedPropertySheetPage(editingDomain) {
+ @Override
+ public void setSelectionToViewer(List<?> selection) {
+ GeneratoroptionsmmEditor.this.setSelectionToViewer(selection);
+ GeneratoroptionsmmEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars) {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection) {
+ if (currentViewerPane != null && !selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext()) {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ // If it's the selection viewer, then we want it to select the same selection as this selection.
+ //
+ if (currentViewerPane.getViewer() == selectionViewer) {
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext()) {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ else {
+ // Set the input to the widget.
+ //
+ if (currentViewerPane.getViewer().getInput() != selectedElement) {
+ currentViewerPane.getViewer().setInput(selectedElement);
+ currentViewerPane.setTitle(selectedElement);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty() {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor) {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor) {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources()) {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
+ try {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp) {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception) {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception) {
+ // Something went wrong that shouldn't.
+ //
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource) {
+ boolean result = false;
+ try {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null) {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e) {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed() {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs() {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null) {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null) {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput) {
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor =
+ getActionBars().getStatusLineManager() != null ?
+ getActionBars().getStatusLineManager().getProgressMonitor() :
+ new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker) {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty()) {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput) {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus() {
+ if (currentViewerPane != null) {
+ currentViewerPane.setFocus();
+ }
+ else {
+ getControl(getActivePage()).setFocus();
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener) {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection() {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection) {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners) {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection) {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ?
+ contentOutlineStatusLineManager : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null) {
+ if (selection instanceof IStructuredSelection) {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size()) {
+ case 0: {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1: {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default: {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key) {
+ return GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1) {
+ return GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key, new Object [] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager) {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor() {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars() {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory() {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose() {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this) {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages) {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null) {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView() {
+ return true;
+ }
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java
new file mode 100644
index 0000000..ac8cefc
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmEditorPlugin.java
@@ -0,0 +1,91 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Generatoroptionsmm editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class GeneratoroptionsmmEditorPlugin extends EMFPlugin {
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final GeneratoroptionsmmEditorPlugin INSTANCE = new GeneratoroptionsmmEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmEditorPlugin() {
+ super
+ (new ResourceLocator [] {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator() {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin() {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation() {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java
new file mode 100644
index 0000000..4ecdeda
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt.editor/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/presentation/GeneratoroptionsmmModelWizard.java
@@ -0,0 +1,628 @@
+/**
+ */
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+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.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.provider.GeneratoroptionsmmEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmModelWizard extends Wizard implements INewWizard {
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneratoroptionsmmPackage generatoroptionsmmPackage = GeneratoroptionsmmPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneratoroptionsmmFactory generatoroptionsmmFactory = generatoroptionsmmPackage.getGeneratoroptionsmmFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneratoroptionsmmModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GeneratoroptionsmmModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(GeneratoroptionsmmEditorPlugin.INSTANCE.getImage("full/wizban/NewGeneratoroptionsmm")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames() {
+ if (initialObjectNames == null) {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : generatoroptionsmmPackage.getEClassifiers()) {
+ if (eClassifier instanceof EClass) {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract()) {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel() {
+ EClass eClass = (EClass)generatoroptionsmmPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = generatoroptionsmmFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish() {
+ try {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation() {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor) {
+ try {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null) {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ }
+ finally {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget) {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable() {
+ public void run() {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception) {
+ MessageDialog.openError(workbenchWindow.getShell(), GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class GeneratoroptionsmmModelWizardNewFileCreationPage extends WizardNewFileCreationPage {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection) {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage() {
+ if (super.validatePage()) {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension)) {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(GeneratoroptionsmmEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class GeneratoroptionsmmModelWizardInitialObjectCreationPage extends WizardPage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmModelWizardInitialObjectCreationPage(String pageId) {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames()) {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings()) {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage() {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (visible) {
+ if (initialObjectField.getItemCount() == 1) {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName() {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames()) {
+ if (getLabel(name).equals(label)) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding() {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName) {
+ try {
+ return GeneratoroptionsmmEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre) {
+ GeneratoroptionsmmEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings() {
+ if (encodings == null) {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); ) {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages() {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new GeneratoroptionsmmModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_label"));
+ newFileCreationPage.setDescription(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_description"));
+ newFileCreationPage.setFileName(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty()) {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource) {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE) {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject) {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i) {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new GeneratoroptionsmmModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_GeneratoroptionsmmModelWizard_label"));
+ initialObjectCreationPage.setDescription(GeneratoroptionsmmEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile() {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
index 9c37a02..39669e7 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/META-INF/MANIFEST.MF
@@ -1,10 +1,16 @@
Manifest-Version: 1.0
Require-Bundle: org.eclipse.uml2.common;bundle-version="1.5.0",
- org.eclipse.jdt.core;bundle-version="3.6.0"
+ org.eclipse.jdt.core;bundle-version="3.6.0",
+ org.eclipse.core.runtime,
+ org.eclipse.emf.ecore;visibility:=reexport,
+ org.eclipse.uml2.types;visibility:=reexport
Export-Package: org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm,
org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.impl,
org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.util,
- org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor
+ org.eclipse.papyrus.java.generator.metamodel.jdt.jdtmm.visitor,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl,
+ org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util
Bundle-Vendor: %providerName
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .
@@ -12,7 +18,6 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Localization: plugin
Bundle-Name: %pluginName
Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt;
- singleton:=true
+Bundle-SymbolicName: org.eclipse.papyrus.java.generator.metamodel.jdt;singleton:=true
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di
new file mode 100644
index 0000000..bf9abab
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.di
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"/>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore
new file mode 100644
index 0000000..94f441e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.ecore
@@ -0,0 +1,12 @@
+<?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="generatoroptionsmm" nsURI="http:///GeneratorOptionsMM.ecore"
+ nsPrefix="GeneratorOptionsMM">
+ <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <details key="originalName" value="GeneratorOptionsMM"/>
+ </eAnnotations>
+ <eClassifiers xsi:type="ecore:EClass" name="Options">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultSourceFolder" ordered="false"
+ lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel
new file mode 100644
index 0000000..185bb8c
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.genmodel
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel 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" xmlns:genmodel="http://www.eclipse.org/uml2/2.2.0/GenModel"
+ modelDirectory="/org.eclipse.papyrus.java.generator.metamodel.jdt/src"
+ modelPluginID="org.eclipse.papyrus.java.generator.metamodel.jdt" modelName="Generatoroptionsmm"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.uml2.uml.ecore.importer"
+ complianceLevel="6.0" copyrightFields="false" usedGenPackages="../../../org.eclipse.uml2.types/model/Types.genmodel#//types"
+ operationReflection="true" importOrganizing="true">
+ <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
+ <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
+ <details key="UNION_PROPERTIES" value="REPORT"/>
+ <details key="UNTYPED_PROPERTIES" value="REPORT"/>
+ <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+ <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
+ <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+ <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
+ <details key="COMMENTS" value="PROCESS"/>
+ <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+ <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
+ <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
+ <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
+ <details key="REDEFINING_PROPERTIES" value="REPORT"/>
+ <details key="ANNOTATION_DETAILS" value="PROCESS"/>
+ <details key="NON_API_INVARIANTS" value="IGNORE"/>
+ <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
+ <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+ <details key="INVOCATION_DELEGATES" value="IGNORE"/>
+ <details key="DERIVED_FEATURES" value="PROCESS"/>
+ <details key="OPERATION_BODIES" value="IGNORE"/>
+ <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
+ <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
+ </genAnnotations>
+ <foreignModel>generatoroptionsmm.uml</foreignModel>
+ <genPackages xsi:type="genmodel:GenPackage" prefix="Generatoroptionsmm" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"
+ disposableProviderFactory="true" ecorePackage="generatoroptionsmm.ecore#/">
+ <genClasses xsi:type="genmodel:GenClass" ecoreClass="generatoroptionsmm.ecore#//Options">
+ <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute generatoroptionsmm.ecore#//Options/defaultSourceFolder"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation
new file mode 100644
index 0000000..b9668ed
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.notation
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/papyrus/infra/viewpoints/policy/style" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xmi:id="_2ca9MPw6EeOA9cUxa0QbfA" type="PapyrusUMLClassDiagram" name="GeneratorOptionsMM" measurementUnit="Pixel">
+ <children xmi:type="notation:Shape" xmi:id="_CFstcPw7EeOA9cUxa0QbfA" type="2008">
+ <children xmi:type="notation:DecorationNode" xmi:id="_CFt7kPw7EeOA9cUxa0QbfA" type="5029"/>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuioPw7EeOA9cUxa0QbfA" type="7017">
+ <children xmi:type="notation:Shape" xmi:id="_Dnw9IPw7EeOA9cUxa0QbfA" type="3012">
+ <element xmi:type="uml:Property" href="generatoroptionsmm.uml#_Dni6sPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Dnw9Ifw7EeOA9cUxa0QbfA"/>
+ </children>
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuiofw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuiovw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuio_w7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuipPw7EeOA9cUxa0QbfA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuipfw7EeOA9cUxa0QbfA" type="7018">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuipvw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuip_w7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuiqPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuiqfw7EeOA9cUxa0QbfA"/>
+ </children>
+ <children xmi:type="notation:BasicCompartment" xmi:id="_CFuiqvw7EeOA9cUxa0QbfA" type="7019">
+ <styles xmi:type="notation:TitleStyle" xmi:id="_CFuiq_w7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_CFuirPw7EeOA9cUxa0QbfA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_CFuirfw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFuirvw7EeOA9cUxa0QbfA"/>
+ </children>
+ <element xmi:type="uml:Class" href="generatoroptionsmm.uml#_CE41IPw7EeOA9cUxa0QbfA"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_CFstcfw7EeOA9cUxa0QbfA" x="448" y="88"/>
+ </children>
+ <styles xmi:type="notation:StringValueStyle" xmi:id="_2ca9Mfw6EeOA9cUxa0QbfA" name="diagram_compatibility_version" stringValue="1.0.0"/>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2ca9Mvw6EeOA9cUxa0QbfA"/>
+ <styles xmi:type="style:PapyrusViewStyle" xmi:id="_2ca9M_w6EeOA9cUxa0QbfA">
+ <owner xmi:type="uml:Model" href="generatoroptionsmm.uml#_2YCzgPw6EeOA9cUxa0QbfA"/>
+ </styles>
+ <element xmi:type="uml:Model" href="generatoroptionsmm.uml#_2YCzgPw6EeOA9cUxa0QbfA"/>
+</notation:Diagram>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml
new file mode 100644
index 0000000..984402e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/generatorOptions/generatoroptionsmm.uml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmi:XMI xmi:version="20131001" xmlns:xmi="http://www.omg.org/spec/XMI/20131001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/5.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
+ <uml:Model xmi:id="_2YCzgPw6EeOA9cUxa0QbfA" name="GeneratorOptionsMM">
+ <packagedElement xmi:type="uml:Class" xmi:id="_CE41IPw7EeOA9cUxa0QbfA" name="Options">
+ <ownedAttribute xmi:type="uml:Property" xmi:id="_Dni6sPw7EeOA9cUxa0QbfA" name="defaultSourceFolder">
+ <type xmi:type="uml:PrimitiveType" href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#String"/>
+ </ownedAttribute>
+ </packagedElement>
+ <profileApplication xmi:type="uml:ProfileApplication" xmi:id="_6l8-YPw6EeOA9cUxa0QbfA">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_6qSr0Pw6EeOA9cUxa0QbfA" source="http://www.eclipse.org/uml2/2.0.0/UML">
+ <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
+ </eAnnotations>
+ <appliedProfile xmi:type="uml:Profile" href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
+ </profileApplication>
+ </uml:Model>
+ <Ecore:EPackage xmi:id="_71WwwPw6EeOA9cUxa0QbfA" base_Package="_2YCzgPw6EeOA9cUxa0QbfA" packageName="generatoroptionsmm" basePackage="org.eclipse.papyrus.java.generator.metamodel.jdt"/>
+</xmi:XMI>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
index 3e099e6..2ad562c 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/model/jdtmm.di
@@ -1,53 +1,53 @@
-<?xml version="1.0" encoding="ASCII"?>
-<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
- <pageList>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
- </availablePage>
- <availablePage>
- <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
- </availablePage>
- </pageList>
- <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
- <windows>
- <children xsi:type="di:TabFolder">
- <children>
- <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
- </children>
- <children>
- <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
- </children>
- </children>
- </windows>
- </sashModel>
-</di:SashWindowsMngr>
+<?xml version="1.0" encoding="UTF-8"?>
+<di:SashWindowsMngr xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:di="http://www.eclipse.org/papyrus/0.7.0/sashdi">
+ <pageList>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
+ </availablePage>
+ <availablePage>
+ <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
+ </availablePage>
+ </pageList>
+ <sashModel currentSelection="//@sashModel/@windows.0/@children.0">
+ <windows>
+ <children xsi:type="di:TabFolder">
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_zfh1MWHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_7jQbEGHXEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_q89k8GHcEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_Ctp9gGHeEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_396V8GHgEeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_EKRgwGQ0EeCX0Yi87Khu0A"/>
+ </children>
+ <children>
+ <emfPageIdentifier href="jdtmm.notation#_CLF4QGaaEeCm5tXW4raF-A"/>
+ </children>
+ </children>
+ </windows>
+ </sashModel>
+</di:SashWindowsMngr>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml
index 16130e1..503e340 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/plugin.xml
@@ -17,4 +17,12 @@
genModel="model/jdtmm.genmodel"/>
</extension>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated generatorOptionsMM -->
+ <package
+ uri="http:///GeneratorOptionsMM.ecore"
+ class="org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage"
+ genModel="model/generatorOptions/generatorOptionsMM.genmodel"/>
+ </extension>
+
</plugin>
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java
new file mode 100644
index 0000000..76ae1ea
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmFactory.java
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+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.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public interface GeneratoroptionsmmFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GeneratoroptionsmmFactory eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Options</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Options</em>'.
+ * @generated
+ */
+ Options createOptions();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ GeneratoroptionsmmPackage getGeneratoroptionsmmPackage();
+
+} //GeneratoroptionsmmFactory
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java
new file mode 100644
index 0000000..189409e
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/GeneratoroptionsmmPackage.java
@@ -0,0 +1,172 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+/**
+ * <!-- 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 operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='GeneratorOptionsMM'"
+ * @generated
+ */
+public interface GeneratoroptionsmmPackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "generatoroptionsmm";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http:///GeneratorOptionsMM.ecore";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "GeneratorOptionsMM";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ GeneratoroptionsmmPackage eINSTANCE = org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl <em>Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl#getOptions()
+ * @generated
+ */
+ int OPTIONS = 0;
+
+ /**
+ * The feature id for the '<em><b>Default Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPTIONS__DEFAULT_SOURCE_FOLDER = 0;
+
+ /**
+ * The number of structural features of the '<em>Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPTIONS_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the '<em>Options</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OPTIONS_OPERATION_COUNT = 0;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options <em>Options</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Options</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options
+ * @generated
+ */
+ EClass getOptions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default Source Folder</em>'.
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder()
+ * @see #getOptions()
+ * @generated
+ */
+ EAttribute getOptions_DefaultSourceFolder();
+
+ /**
+ * 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
+ */
+ GeneratoroptionsmmFactory getGeneratoroptionsmmFactory();
+
+ /**
+ * <!-- 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 operation 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.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl <em>Options</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.GeneratoroptionsmmPackageImpl#getOptions()
+ * @generated
+ */
+ EClass OPTIONS = eINSTANCE.getOptions();
+
+ /**
+ * The meta object literal for the '<em><b>Default Source Folder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute OPTIONS__DEFAULT_SOURCE_FOLDER = eINSTANCE.getOptions_DefaultSourceFolder();
+
+ }
+
+} //GeneratoroptionsmmPackage
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java
new file mode 100644
index 0000000..3fc5201
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/Options.java
@@ -0,0 +1,61 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Options</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#getOptions()
+ * @model
+ * @generated
+ */
+public interface Options extends EObject {
+ /**
+ * Returns the value of the '<em><b>Default Source Folder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Source Folder</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Source Folder</em>' attribute.
+ * @see #setDefaultSourceFolder(String)
+ * @see org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#getOptions_DefaultSourceFolder()
+ * @model dataType="org.eclipse.uml2.types.String" required="true" ordered="false"
+ * @generated
+ */
+ String getDefaultSourceFolder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options#getDefaultSourceFolder <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Source Folder</em>' attribute.
+ * @see #getDefaultSourceFolder()
+ * @generated
+ */
+ void setDefaultSourceFolder(String value);
+
+} // Options
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java
new file mode 100644
index 0000000..cba5a48
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmFactoryImpl.java
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.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.java.generator.metamodel.jdt.generatoroptionsmm.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmFactoryImpl extends EFactoryImpl implements GeneratoroptionsmmFactory {
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static GeneratoroptionsmmFactory init() {
+ try {
+ GeneratoroptionsmmFactory theGeneratoroptionsmmFactory = (GeneratoroptionsmmFactory)EPackage.Registry.INSTANCE.getEFactory(GeneratoroptionsmmPackage.eNS_URI);
+ if (theGeneratoroptionsmmFactory != null) {
+ return theGeneratoroptionsmmFactory;
+ }
+ }
+ catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new GeneratoroptionsmmFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case GeneratoroptionsmmPackage.OPTIONS: return createOptions();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Options createOptions() {
+ OptionsImpl options = new OptionsImpl();
+ return options;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmPackage getGeneratoroptionsmmPackage() {
+ return (GeneratoroptionsmmPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static GeneratoroptionsmmPackage getPackage() {
+ return GeneratoroptionsmmPackage.eINSTANCE;
+ }
+
+} //GeneratoroptionsmmFactoryImpl
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java
new file mode 100644
index 0000000..c3e6b16
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/GeneratoroptionsmmPackageImpl.java
@@ -0,0 +1,216 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmFactory;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+import org.eclipse.uml2.types.TypesPackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class GeneratoroptionsmmPackageImpl extends EPackageImpl implements GeneratoroptionsmmPackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass optionsEClass = 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.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private GeneratoroptionsmmPackageImpl() {
+ super(eNS_URI, GeneratoroptionsmmFactory.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 GeneratoroptionsmmPackage#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 GeneratoroptionsmmPackage init() {
+ if (isInited) return (GeneratoroptionsmmPackage)EPackage.Registry.INSTANCE.getEPackage(GeneratoroptionsmmPackage.eNS_URI);
+
+ // Obtain or create and register package
+ GeneratoroptionsmmPackageImpl theGeneratoroptionsmmPackage = (GeneratoroptionsmmPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof GeneratoroptionsmmPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new GeneratoroptionsmmPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ TypesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theGeneratoroptionsmmPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theGeneratoroptionsmmPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theGeneratoroptionsmmPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(GeneratoroptionsmmPackage.eNS_URI, theGeneratoroptionsmmPackage);
+ return theGeneratoroptionsmmPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOptions() {
+ return optionsEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getOptions_DefaultSourceFolder() {
+ return (EAttribute)optionsEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmFactory getGeneratoroptionsmmFactory() {
+ return (GeneratoroptionsmmFactory)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
+ optionsEClass = createEClass(OPTIONS);
+ createEAttribute(optionsEClass, OPTIONS__DEFAULT_SOURCE_FOLDER);
+ }
+
+ /**
+ * <!-- 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);
+
+ // Obtain other dependent packages
+ TypesPackage theTypesPackage = (TypesPackage)EPackage.Registry.INSTANCE.getEPackage(TypesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(optionsEClass, Options.class, "Options", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getOptions_DefaultSourceFolder(), theTypesPackage.getString(), "defaultSourceFolder", null, 1, 1, Options.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/uml2/2.0.0/UML
+ createUMLAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/uml2/2.0.0/UML</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createUMLAnnotations() {
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ "originalName", "GeneratorOptionsMM"
+ });
+ }
+
+} //GeneratoroptionsmmPackageImpl
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java
new file mode 100644
index 0000000..28333f7
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/impl/OptionsImpl.java
@@ -0,0 +1,174 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage;
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.Options;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Options</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.impl.OptionsImpl#getDefaultSourceFolder <em>Default Source Folder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OptionsImpl extends MinimalEObjectImpl.Container implements Options {
+ /**
+ * The default value of the '{@link #getDefaultSourceFolder() <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_SOURCE_FOLDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefaultSourceFolder() <em>Default Source Folder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultSourceFolder()
+ * @generated
+ * @ordered
+ */
+ protected String defaultSourceFolder = DEFAULT_SOURCE_FOLDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OptionsImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return GeneratoroptionsmmPackage.Literals.OPTIONS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDefaultSourceFolder() {
+ return defaultSourceFolder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultSourceFolder(String newDefaultSourceFolder) {
+ String oldDefaultSourceFolder = defaultSourceFolder;
+ defaultSourceFolder = newDefaultSourceFolder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER, oldDefaultSourceFolder, defaultSourceFolder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ return getDefaultSourceFolder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ setDefaultSourceFolder((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ setDefaultSourceFolder(DEFAULT_SOURCE_FOLDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case GeneratoroptionsmmPackage.OPTIONS__DEFAULT_SOURCE_FOLDER:
+ return DEFAULT_SOURCE_FOLDER_EDEFAULT == null ? defaultSourceFolder != null : !DEFAULT_SOURCE_FOLDER_EDEFAULT.equals(defaultSourceFolder);
+ }
+ 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(" (defaultSourceFolder: ");
+ result.append(defaultSourceFolder);
+ result.append(')');
+ return result.toString();
+ }
+
+} //OptionsImpl
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java
new file mode 100644
index 0000000..5a70f90
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmAdapterFactory.java
@@ -0,0 +1,131 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.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.java.generator.metamodel.jdt.generatoroptionsmm.*;
+
+/**
+ * <!-- 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.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public class GeneratoroptionsmmAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GeneratoroptionsmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = GeneratoroptionsmmPackage.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 GeneratoroptionsmmSwitch<Adapter> modelSwitch =
+ new GeneratoroptionsmmSwitch<Adapter>() {
+ @Override
+ public Adapter caseOptions(Options object) {
+ return createOptionsAdapter();
+ }
+ @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.java.generator.metamodel.jdt.generatoroptionsmm.Options <em>Options</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.java.generator.metamodel.jdt.generatoroptionsmm.Options
+ * @generated
+ */
+ public Adapter createOptionsAdapter() {
+ 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;
+ }
+
+} //GeneratoroptionsmmAdapterFactory
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java
new file mode 100644
index 0000000..eafb208
--- /dev/null
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.metamodel.jdt/src/org/eclipse/papyrus/java/generator/metamodel/jdt/generatoroptionsmm/util/GeneratoroptionsmmSwitch.java
@@ -0,0 +1,121 @@
+/*****************************************************************************
+ * Copyright (c) 2014 Jonathan Geoffroy
+ *
+ *
+ * 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:
+ * Jonathan Geoffroy geoffroy.jonathan@gmail.com - Meta-model conception
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.util;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+import org.eclipse.papyrus.java.generator.metamodel.jdt.generatoroptionsmm.*;
+
+/**
+ * <!-- 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.java.generator.metamodel.jdt.generatoroptionsmm.GeneratoroptionsmmPackage
+ * @generated
+ */
+public class GeneratoroptionsmmSwitch<T> extends Switch<T> {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static GeneratoroptionsmmPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GeneratoroptionsmmSwitch() {
+ if (modelPackage == null) {
+ modelPackage = GeneratoroptionsmmPackage.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 GeneratoroptionsmmPackage.OPTIONS: {
+ Options options = (Options)theEObject;
+ T result = caseOptions(options);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Options</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>Options</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOptions(Options 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;
+ }
+
+} //GeneratoroptionsmmSwitch
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
index d506b32..e2a43a4 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.transfo.umltojdt/transforms/uml/uml2jdt2.qvto
@@ -21,12 +21,13 @@ import Strings;
*/
modeltype UMLmm uses "http://www.eclipse.org/uml2/3.0.0/UML";
modeltype JDTmm uses 'http:///jdtmm.ecore';
+modeltype GeneratorOptionsMM uses 'http:///GeneratorOptionsMM.ecore';
modeltype JavaProfile uses java('http://www.eclipse.org/papyrus/JAVA/1');
/**
*
*/
-transformation uml2jdt2( in uml: UMLmm, out jdt: JDTmm)
+transformation uml2jdt2( in uml: UMLmm, in options : GeneratorOptionsMM, out jdt: JDTmm)
extends stereotypeUtil;
/** Root of java stereotypes */
@@ -79,7 +80,7 @@ main() {
uml.NO_PACKAGE := null;
// Default names
- uml.GENERATION_DEFAULT_SRC_NAME := "generated";
+ uml.GENERATION_DEFAULT_SRC_NAME := options.objectsOfType(GeneratorOptionsMM::Options)->asSequence()->first().defaultSourceFolder;
uml.GENERATION_DEFAULT_PROJECT_NAME := "defaultProject";
// Select only object that we want to generate
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java
index f683ac7..84edf63 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/GeneratorPreferenceImpl.java
@@ -88,4 +88,9 @@ public class GeneratorPreferenceImpl implements GeneratorPreference {
return store.getBoolean(PreferenceConstants.P_STOP_ON_FIRST_ERROR);
}
+ @Override
+ public String defaultSourceFolderName() {
+ return store.getString(PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME);
+ }
+
}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java
index 21c3e78..099e5c9 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceConstants.java
@@ -34,4 +34,8 @@ public class PreferenceConstants {
public static final String P_GENERIC_CLASS_FOR_MULTIVALUE = "genericClassForMultiValue";
public static final String P_STOP_ON_FIRST_ERROR = "stopOnFirstError";
+
+ public static final String P_DEFAULT_SOURCE_FOLDER_NAME = "defaultSourceFolderName";
+
+ public static final String LABEL_DEFAULT_SOURCE_FOLDER_NAME = "Default source folder name";
}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java
index 1bf8a6f..deaaaf1 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferenceInitializer.java
@@ -40,6 +40,7 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer {
store.setDefault(PreferenceConstants.P_FILTER_OF_PACKAGE_NOT_TO_GENERATE, "java.*;javax.*");
store.setDefault(PreferenceConstants.P_GENERIC_CLASS_FOR_MULTIVALUE, "java.util.List");
store.setDefault(PreferenceConstants.P_STOP_ON_FIRST_ERROR, true);
+ store.setDefault(PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME, "src");
}
}
diff --git a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java
index 27590e4..e38c052 100644
--- a/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java
+++ b/extraplugins/java/org.eclipse.papyrus.java.generator.ui/src/org/eclipse/papyrus/java/generator/ui/preference/PreferencePage.java
@@ -84,6 +84,13 @@ public class PreferencePage
PreferenceConstants.P_GENERIC_CLASS_FOR_MULTIVALUE,
"Generic class to use for association * ",
getFieldEditorParent()));
+
+
+ // text input field for the default source folder name
+ addField(new GenericClassFieldEditor(
+ PreferenceConstants.P_DEFAULT_SOURCE_FOLDER_NAME,
+ PreferenceConstants.LABEL_DEFAULT_SOURCE_FOLDER_NAME,
+ getFieldEditorParent()));
}
/*
diff --git a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.xtext/xtend-gen/org/eclipse/papyrus/infra/gmfdiag/generator/CSSGenerator.java b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.xtext/xtend-gen/org/eclipse/papyrus/infra/gmfdiag/generator/CSSGenerator.java
index 4fe9678..6c408b5 100644
--- a/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.xtext/xtend-gen/org/eclipse/papyrus/infra/gmfdiag/generator/CSSGenerator.java
+++ b/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css.xtext/xtend-gen/org/eclipse/papyrus/infra/gmfdiag/generator/CSSGenerator.java
@@ -1,14 +1,14 @@
-/**
- * generated by Xtext
- */
-package org.eclipse.papyrus.infra.gmfdiag.generator;
-
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.generator.IFileSystemAccess;
-import org.eclipse.xtext.generator.IGenerator;
-
-@SuppressWarnings("all")
-public class CSSGenerator implements IGenerator {
- public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
- }
-}
+/**
+ * generated by Xtext
+ */
+package org.eclipse.papyrus.infra.gmfdiag.generator;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.xtext.generator.IFileSystemAccess;
+import org.eclipse.xtext.generator.IGenerator;
+
+@SuppressWarnings("all")
+public class CSSGenerator implements IGenerator {
+ public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
+ }
+}