Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/developer/org.eclipse.papyrus.def')
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF62
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/.gitignore8
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ChildNodeLabelEditPart.java108
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/CompartmentEditPart.java232
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/DiagramEditPart.java34
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ExternalNodeLabelEditPart.java203
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkEditPart.java34
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkLabelEditPart.java137
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeEditPart.java235
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeLabelEditPart.java143
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore10
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChildNodeLabelEditPart.java64
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChoiceUtils_qvto.java49
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/CompartmentEditPart.java86
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/DiagramEditPart.java225
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.java28
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkEditPart.java271
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkLabelEditPart.java63
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeEditPart.java1021
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeLabelEditPart.java69
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/TextAware.java2054
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java476
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java296
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/StandardPage.java146
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/.gitignore2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/Facility.java96
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/MetaModel.java32
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/.gitignore3
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/CodeStyle.java16
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/Common.java44
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/QualifiedClassNameProvider.java55
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/.gitignore3
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateLinkUtils.java218
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateNodeCommand.java491
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/ReorientLinkUtils.java153
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/EditHelper.java69
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/.gitignore2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/Common.java72
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/EditPartFactory.java162
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/.gitignore11
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.java1161
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/CompartmentItemSemanticEditPolicy.java328
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/DiagramItemSemanticEditPolicy.java20
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/LinkItemSemanticEditPolicy.java133
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.java594
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/OpenDiagram.java188
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java46
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.java93
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java44
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/childContainerCreateCommand.java154
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/linkCommands.java482
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/.gitignore2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/PreferenceInitializer.java32
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/extensions.java201
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/.gitignore2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/DiagramUpdater.java1082
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/Extensions.java25
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/ViewStyles.java82
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/.gitignore14
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java108
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/CreationWizard.java595
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DeleteElementAction.java21
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorContextMenuProvider.java159
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorUtil.java300
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DocumentProvider.java1036
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/Editor.java1321
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/InitDiagramFileAction.java230
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/NewDiagramFileWizard.java681
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetInfo.java147
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetModificationListener.java153
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ValidateAction.java568
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/VisualIDRegistry.java534
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/extensions.java90
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/.gitignore2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/PaletteFactory.java290
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/Utils_qvto.java121
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/.gitignore1
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/AbstractExpression.java167
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/.gitignore7
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java142
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java82
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java141
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorContentProvider.java1020
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java67
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java117
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorLinkHelper.java82
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/.gitignore3
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/ActivatorImpl.java477
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/manifest.java244
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/plugin.java624
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/.gitignore7
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementInitializers.java376
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java148
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java254
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationDecoratorProvider.java192
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationProvider.java288
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ViewProvider.java2191
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/extensions.java576
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/.gitignore5
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditHelperUtils_qvto.java35
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditPartsUtils_qvto.java92
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/NodeConstraintUtils_qvto.java120
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/PrefsConstant_qvto.java119
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/UtilsItemSemanticEditPolicy.java104
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/NodeLabelEditPart.xtend2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend32
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend63
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend28
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend23
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/metamodel/MetaModel.xtend16
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/CodeStyle.xtend12
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/CreateNodeCommand.xtend3
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/ReorientLinkUtils.xtend65
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.xtend42
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/CreationWizard.xtend174
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorContextMenuProvider.xtend6
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorUtil.xtend87
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DocumentProvider.xtend249
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/Editor.xtend38
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/InitDiagramFileAction.xtend81
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/NewDiagramFileWizard.xtend167
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetInfo.xtend60
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetModificationListener.xtend2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ValidateAction.xtend86
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/VisualIDRegistry.xtend14
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/expressions/AbstractExpression.xtend64
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend8
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend5
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend192
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend7
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/plugin.xtend72
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementInitializers.xtend15
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend2
-rw-r--r--plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ValidationProvider.xtend32
141 files changed, 27603 insertions, 256 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF b/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
index 6ba08e7d78c..7912edade87 100644
--- a/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
+++ b/plugins/developer/org.eclipse.papyrus.def/META-INF/MANIFEST.MF
@@ -1,31 +1,31 @@
-Manifest-Version: 1.0
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.codegen.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
- org.eclipse.draw2d;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.gmf.runtime.notation,
- org.eclipse.gmf.common;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
- org.eclipse.gmf.validate;bundle-version="[1.1.0,2.0.0)",
- org.eclipse.gmf.codegen;bundle-version="[2.0.0,3.1.0)",
- org.eclipse.gmf.graphdef;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.xtext;bundle-version="2.3.1",
- org.eclipse.xtext.builder;bundle-version="2.3.1",
- org.eclipse.xtend.lib,
- org.eclipse.ocl.ecore,
- com.google.guava;bundle-version="11.0.0",
- org.eclipse.xtext.xbase.lib,
- org.eclipse.gmf.codegen.xtend;bundle-version="1.0.0",
- org.eclipse.papyrus.gmfgenextension;bundle-version="1.1.0",
- org.eclipse.papyrus.codegen;bundle-version="1.1.0"
-Bundle-Vendor: %providerName
-Bundle-ClassPath: bin/,
- .
-Bundle-Version: 1.1.0.qualifier
-Bundle-Name: %pluginName
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.gmf.codegen.util.DefaultActivator
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.papyrus.def;singleton:=true
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.codegen.ecore;bundle-version="[2.4.0,3.0.0)";visibility:=reexport,
+ org.eclipse.draw2d;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.gmf.runtime.notation,
+ org.eclipse.gmf.common;bundle-version="[1.2.0,2.0.0)";visibility:=reexport,
+ org.eclipse.gmf.validate;bundle-version="[1.1.0,2.0.0)",
+ org.eclipse.gmf.codegen;bundle-version="[2.0.0,3.1.0)",
+ org.eclipse.gmf.graphdef;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.xtext;bundle-version="2.3.1",
+ org.eclipse.xtext.builder;bundle-version="2.3.1",
+ org.eclipse.xtend.lib,
+ org.eclipse.ocl.ecore,
+ com.google.guava;bundle-version="11.0.0",
+ org.eclipse.xtext.xbase.lib,
+ org.eclipse.gmf.codegen.xtend;bundle-version="1.0.0",
+ org.eclipse.papyrus.gmfgenextension;bundle-version="1.1.0",
+ org.eclipse.papyrus.codegen;bundle-version="1.1.0"
+Bundle-Vendor: %providerName
+Bundle-ClassPath: bin/,
+ .
+Bundle-Version: 1.1.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Localization: plugin
+Bundle-Activator: org.eclipse.gmf.codegen.util.DefaultActivator
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.def;singleton:=true
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/.gitignore
deleted file mode 100644
index 1a2600974d6..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-/ChildNodeLabelEditPart.java
-/CompartmentEditPart.java
-/DiagramEditPart.java
-/ExternalNodeLabelEditPart.java
-/LinkEditPart.java
-/LinkLabelEditPart.java
-/NodeEditPart.java
-/NodeLabelEditPart.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ChildNodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ChildNodeLabelEditPart.java
new file mode 100644
index 00000000000..a1f87ee247a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ChildNodeLabelEditPart.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class ChildNodeLabelEditPart extends diagram.editparts.ChildNodeLabelEditPart {
+ public CharSequence extendsList(final GenChildLabelNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("extends ");
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ _builder.newLineIfNotEmpty();
+ CharSequence _specifyInheritance = this.specifyInheritance(((ExtendedGenView) extendedObject));
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("extends org.eclipse.gmf.runtime.diagram.ui.editparts.CompartmentEditPart");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specifyInheritance(final ExtendedGenView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _superOwnedEditPart = it.getSuperOwnedEditPart();
+ _builder.append(_superOwnedEditPart, "");
+ return _builder;
+ }
+
+ public CharSequence implementsList(final GenChildLabelNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("implements org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart, org.eclipse.gmf.runtime.diagram.ui.editparts.IPrimaryEditPart, org.eclipse.papyrus.infra.gmfdiag.common.editpart.IControlParserForDirectEdit");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/CompartmentEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/CompartmentEditPart.java
new file mode 100644
index 00000000000..1647d4c44cf
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/CompartmentEditPart.java
@@ -0,0 +1,232 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class CompartmentEditPart extends diagram.editparts.CompartmentEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence extendsList(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("extends ");
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ _builder.newLineIfNotEmpty();
+ CharSequence _specifyInheritance = this.specifyInheritance(((ExtendedGenView) extendedObject));
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("extends ");
+ {
+ boolean _isListLayout = it.isListLayout();
+ if (_isListLayout) {
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.ListCompartmentEditPart");
+ } else {
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specifyInheritance(final ExtendedGenView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _superOwnedEditPart = it.getSuperOwnedEditPart();
+ _builder.append(_superOwnedEditPart, "");
+ return _builder;
+ }
+
+ public CharSequence additions(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _handleSize = this.handleSize(it);
+ _builder.append(_handleSize, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _refreshbound = this.refreshbound(it);
+ _builder.append(_refreshbound, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _refreshvisual = this.refreshvisual(it);
+ _builder.append(_refreshvisual, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence handleSize(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void handleNotificationEvent(org.eclipse.emf.common.notify.Notification notification) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Object feature = notification.getFeature();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Width().equals(feature)");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("|| org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Height().equals(feature)");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("|| org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_X().equals(feature)");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("|| org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_Y().equals(feature)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("refreshBounds();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.handleNotificationEvent(notification);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} ");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshbound(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshBounds() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int width = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Width())).intValue();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int height = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getSize_Height())).intValue();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.draw2d.geometry.Dimension size = new org.eclipse.draw2d.geometry.Dimension(width, height);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int x = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_X())).intValue();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int y = ((Integer) getStructuralFeatureValue(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLocation_Y())).intValue();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.draw2d.geometry.Point loc = new org.eclipse.draw2d.geometry.Point(x, y);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("((org.eclipse.gef.GraphicalEditPart) getParent()).setLayoutConstraint(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("this,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getFigure(),");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("new org.eclipse.draw2d.geometry.Rectangle(loc, size));");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshvisual(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshVisuals() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.refreshVisuals();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("refreshBounds();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/DiagramEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/DiagramEditPart.java
new file mode 100644
index 00000000000..fc207965c13
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/DiagramEditPart.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class DiagramEditPart extends diagram.editparts.DiagramEditPart {
+ @Inject
+ private aspects.impl.diagram.editparts.DiagramEditPart aspectDiagramEditPart;
+
+ public CharSequence extendsList(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("extends ");
+ CharSequence _extendsListContents = this.aspectDiagramEditPart.extendsListContents(it);
+ _builder.append(_extendsListContents, "");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ExternalNodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ExternalNodeLabelEditPart.java
new file mode 100644
index 00000000000..7f5d5a96831
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/ExternalNodeLabelEditPart.java
@@ -0,0 +1,203 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ExternalNodeLabelEditPart extends diagram.editparts.ExternalNodeLabelEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence extendsList(final GenExternalNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("extends ");
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ _builder.newLineIfNotEmpty();
+ CharSequence _specifyInheritance = this.specifyInheritance(((ExtendedGenView) extendedObject));
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence implementsList(final GenExternalNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("implements org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart, org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart");
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenExternalNodeLabel> _externalNodeLabels = v.getExternalNodeLabels();
+ return Boolean.valueOf(_externalNodeLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append(", org.eclipse.papyrus.uml.diagram.common.editparts.ILabelRoleProvider");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence additions(final GenExternalNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenExternalNodeLabel> _externalNodeLabels = v.getExternalNodeLabels();
+ return Boolean.valueOf(_externalNodeLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public String getLabelRole(){");
+ _builder.newLine();
+ _builder.append("return \"");
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter_2 = Iterators.<LabelVisibilityPreference>filter(_allContents_1, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function_1 = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenExternalNodeLabel> _externalNodeLabels = v.getExternalNodeLabels();
+ return Boolean.valueOf(_externalNodeLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_3 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter_2, _function_1);
+ LabelVisibilityPreference _head = IteratorExtensions.<LabelVisibilityPreference>head(_filter_3);
+ String _role = _head.getRole();
+ _builder.append(_role, "");
+ _builder.append("\";//$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedClassComment_1 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public String getIconPathRole(){");
+ _builder.newLine();
+ _builder.append("return \"");
+ Resource _eResource_2 = it.eResource();
+ TreeIterator<EObject> _allContents_2 = _eResource_2.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter_4 = Iterators.<LabelVisibilityPreference>filter(_allContents_2, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function_2 = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenExternalNodeLabel> _externalNodeLabels = v.getExternalNodeLabels();
+ return Boolean.valueOf(_externalNodeLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_5 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter_4, _function_2);
+ LabelVisibilityPreference _head_1 = IteratorExtensions.<LabelVisibilityPreference>head(_filter_5);
+ String _iconPathRole = _head_1.getIconPathRole();
+ _builder.append(_iconPathRole, "");
+ _builder.append("\";//$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specifyInheritance(final ExtendedGenView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _superOwnedEditPart = it.getSuperOwnedEditPart();
+ _builder.append(_superOwnedEditPart, "");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkEditPart.java
new file mode 100644
index 00000000000..e477faf65c2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkEditPart.java
@@ -0,0 +1,34 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class LinkEditPart extends diagram.editparts.LinkEditPart {
+ @Inject
+ private aspects.impl.diagram.editparts.LinkEditPart aspectsLinkEditPart;
+
+ public CharSequence extendsList(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("extends ");
+ CharSequence _extendsListContents = this.aspectsLinkEditPart.extendsListContents(it);
+ _builder.append(_extendsListContents, "");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkLabelEditPart.java
new file mode 100644
index 00000000000..44cdc74c4d9
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/LinkLabelEditPart.java
@@ -0,0 +1,137 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class LinkLabelEditPart extends diagram.editparts.LinkLabelEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence implementsList(final GenLinkLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("implements org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart, org.eclipse.papyrus.infra.gmfdiag.common.editpart.IControlParserForDirectEdit");
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenLinkLabel> _linkLabels = v.getLinkLabels();
+ return Boolean.valueOf(_linkLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append(", org.eclipse.papyrus.uml.diagram.common.editparts.ILabelRoleProvider");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence additions(final GenLinkLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenLinkLabel> _linkLabels = v.getLinkLabels();
+ return Boolean.valueOf(_linkLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public String getLabelRole(){");
+ _builder.newLine();
+ _builder.append("return \"");
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter_2 = Iterators.<LabelVisibilityPreference>filter(_allContents_1, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function_1 = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenLinkLabel> _linkLabels = v.getLinkLabels();
+ return Boolean.valueOf(_linkLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_3 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter_2, _function_1);
+ LabelVisibilityPreference _head = IteratorExtensions.<LabelVisibilityPreference>head(_filter_3);
+ String _role = _head.getRole();
+ _builder.append(_role, "");
+ _builder.append("\";//$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedClassComment_1 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public String getIconPathRole(){");
+ _builder.newLine();
+ _builder.append("return \"");
+ Resource _eResource_2 = it.eResource();
+ TreeIterator<EObject> _allContents_2 = _eResource_2.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter_4 = Iterators.<LabelVisibilityPreference>filter(_allContents_2, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function_2 = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference v) {
+ EList<GenLinkLabel> _linkLabels = v.getLinkLabels();
+ return Boolean.valueOf(_linkLabels.contains(it));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_5 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter_4, _function_2);
+ LabelVisibilityPreference _head_1 = IteratorExtensions.<LabelVisibilityPreference>head(_filter_5);
+ String _iconPathRole = _head_1.getIconPathRole();
+ _builder.append(_iconPathRole, "");
+ _builder.append("\";//$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence extendsList(final GenLinkLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusLabelEditPart");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeEditPart.java
new file mode 100644
index 00000000000..9b9ea94aedb
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeEditPart.java
@@ -0,0 +1,235 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.diagram.editparts.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class NodeEditPart extends diagram.editparts.NodeEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private impl.diagram.editparts.NodeEditPart xptNodeEditPartImpl;
+
+ @Inject
+ private aspects.impl.diagram.editparts.NodeEditPart aspectsNodeEditPartImpl;
+
+ public CharSequence Main(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.xptNodeEditPartImpl.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.xptNodeEditPartImpl.className(it);
+ _builder.append(_className, "");
+ _builder.append(" ");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "");
+ _builder.append(" ");
+ CharSequence _implementsList = this.implementsList(it);
+ _builder.append(_implementsList, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _attributes = this.attributes(it);
+ _builder.append(_attributes, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _constructor = this.xptNodeEditPartImpl.constructor(it);
+ _builder.append(_constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _createDefaultEditPolicies = this.createDefaultEditPolicies(it);
+ _builder.append(_createDefaultEditPolicies, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _createLayoutEditPolicy = this.xptNodeEditPartImpl.createLayoutEditPolicy(it);
+ _builder.append(_createLayoutEditPolicy, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _specificHandleNotificationEvent = this.aspectsNodeEditPartImpl.specificHandleNotificationEvent(it);
+ _builder.append(_specificHandleNotificationEvent, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ Viewmap _viewmap = it.getViewmap();
+ CharSequence _createNodeShape = this.xptNodeEditPartImpl.createNodeShape(_viewmap, it);
+ _builder.append(_createNodeShape, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ boolean _hasFixedChildren = this._utils_qvto.hasFixedChildren(it);
+ if (_hasFixedChildren) {
+ _builder.append("\t");
+ CharSequence _addFixedChild = this.xptNodeEditPartImpl.addFixedChild(it);
+ _builder.append(_addFixedChild, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _removeFixedChild = this.xptNodeEditPartImpl.removeFixedChild(it);
+ _builder.append(_removeFixedChild, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _addChildVisual = this.xptNodeEditPartImpl.addChildVisual(it);
+ _builder.append(_addChildVisual, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _removeChildVisual = this.xptNodeEditPartImpl.removeChildVisual(it);
+ _builder.append(_removeChildVisual, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _contentPaneFor = this.xptNodeEditPartImpl.getContentPaneFor(it);
+ _builder.append(_contentPaneFor, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _addBorderItem = this.xptNodeEditPartImpl.addBorderItem(it);
+ _builder.append(_addBorderItem, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _createNodePlate = this.xptNodeEditPartImpl.createNodePlate(it);
+ _builder.append(_createNodePlate, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _primaryDragEditPolicy = this.xptNodeEditPartImpl.getPrimaryDragEditPolicy(it);
+ _builder.append(_primaryDragEditPolicy, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _createFigure = this.xptNodeEditPartImpl.createFigure(it);
+ _builder.append(_createFigure, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _setupContentPane = this.xptNodeEditPartImpl.setupContentPane(it);
+ _builder.append(_setupContentPane, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _contentPane = this.xptNodeEditPartImpl.getContentPane(it);
+ _builder.append(_contentPane, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _setForegroundColor = this.xptNodeEditPartImpl.setForegroundColor(it);
+ _builder.append(_setForegroundColor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _setLineWidth = this.xptNodeEditPartImpl.setLineWidth(it);
+ _builder.append(_setLineWidth, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _setLineStyle = this.xptNodeEditPartImpl.setLineStyle(it);
+ _builder.append(_setLineStyle, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _primaryChildEditPart = this.xptNodeEditPartImpl.getPrimaryChildEditPart(it);
+ _builder.append(_primaryChildEditPart, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ {
+ boolean _hasChildrenInListCompartments = this._utils_qvto.hasChildrenInListCompartments(it);
+ if (_hasChildrenInListCompartments) {
+ CharSequence _targetEditPartMethod = this.xptNodeEditPartImpl.getTargetEditPartMethod(it);
+ _builder.append(_targetEditPartMethod, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _handleNotificationEvent = this.handleNotificationEvent(it);
+ _builder.append(_handleNotificationEvent, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ Viewmap _viewmap_1 = it.getViewmap();
+ CharSequence _innerClassDeclaration = this.xptNodeEditPartImpl.innerClassDeclaration(_viewmap_1);
+ _builder.append(_innerClassDeclaration, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence extendsList(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append(" ");
+ _builder.append("extends ");
+ CharSequence _extendsListContents = this.aspectsNodeEditPartImpl.extendsListContents(it);
+ _builder.append(_extendsListContents, " ");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeLabelEditPart.java
new file mode 100644
index 00000000000..e82f69e6fe2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/diagram/editparts/NodeLabelEditPart.java
@@ -0,0 +1,143 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class NodeLabelEditPart extends diagram.editparts.NodeLabelEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private impl.diagram.editparts.NodeLabelEditPart xptNodeLabelEditPart;
+
+ public CharSequence implementsList(final GenNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("implements org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart, org.eclipse.papyrus.infra.gmfdiag.common.editpart.IControlParserForDirectEdit");
+ return _builder;
+ }
+
+ public CharSequence extendsList(final GenNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("extends org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusCompartmentEditPart");
+ return _builder;
+ }
+
+ public CharSequence handleNotificationEvent(final GenNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void handleNotificationEvent(org.eclipse.emf.common.notify.Notification event) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshLabel();");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _handleNotificationEventBody = this.xptNodeLabelEditPart.handleNotificationEventBody(it);
+ _builder.append(_handleNotificationEventBody, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence additions(final GenNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static final String ADD_PARENT_MODEL = \"AddParentModel\";");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void activate() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.activate();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("addOwnerElementListeners();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void addOwnerElementListeners() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("addListenerFilter(ADD_PARENT_MODEL, this, ((org.eclipse.gmf.runtime.notation.View) getParent().getModel()));");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void deactivate() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("removeOwnerElementListeners();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.deactivate();");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void removeOwnerElementListeners() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("removeListenerFilter(ADD_PARENT_MODEL);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore
index 37f57489b1b..0a48b2b962e 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/.gitignore
@@ -1,9 +1 @@
-/TextAware.java
-/NodeEditPart.java
-/ChildNodeLabelEditPart.java
-/ChoiceUtils_qvto.java
-/CompartmentEditPart.java
-/DiagramEditPart.java
-/LinkEditPart.java
-/LinkLabelEditPart.java
-/NodeLabelEditPart.java
+/ExternalNodeLabelEditPart.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChildNodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChildNodeLabelEditPart.java
new file mode 100644
index 00000000000..1cd170c4b6a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChildNodeLabelEditPart.java
@@ -0,0 +1,64 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.diagram.editparts.Common;
+
+/**
+ * Revisit: [MG]: @Inject extension same-named-api-class -> template extends api-class?
+ */
+@Singleton
+@SuppressWarnings("all")
+public class ChildNodeLabelEditPart extends impl.diagram.editparts.ChildNodeLabelEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence handleNotificationEventBody(final GenChildLabelNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t\t");
+ _builder.append("Object feature = event.getFeature();");
+ _builder.newLine();
+ CharSequence _handleText = this._common.handleText(it);
+ _builder.append(_handleText, "");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isLabelElementIcon = it.isLabelElementIcon();
+ if (_isLabelElementIcon) {
+ _builder.append("if(event.getNewValue() instanceof org.eclipse.emf.ecore.EAnnotation && org.eclipse.papyrus.infra.emf.appearance.helper.VisualInformationPapyrusConstants.DISPLAY_NAMELABELICON.equals(((org.eclipse.emf.ecore.EAnnotation)event.getNewValue()).getSource())){\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshLabel();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("if (org.eclipse.uml2.uml.UMLPackage.eINSTANCE.getFeature_IsStatic().equals(feature)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("refreshUnderline();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("super.handleNotificationEvent(event);");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChoiceUtils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChoiceUtils_qvto.java
new file mode 100644
index 00000000000..d06df4f7b09
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ChoiceUtils_qvto.java
@@ -0,0 +1,49 @@
+/**
+ * Copyright (c) 2011 - 2013 Montages AG
+ *
+ * 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:
+ * Svyatoslav Kovalsky (Montages) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
+import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.OclChoiceParser;
+import org.eclipse.gmf.codegen.gmfgen.PredefinedEnumParser;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class ChoiceUtils_qvto extends impl.diagram.editparts.ChoiceUtils_qvto {
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ public boolean isChoiceLabel(final LabelModelFacet modelFacet) {
+ GenParserImplementation parser = modelFacet.getParser();
+ boolean _notEquals = (!Objects.equal(parser, null));
+ if (_notEquals) {
+ boolean _or = false;
+ boolean _oclIsKindOf = this._common_qvto.oclIsKindOf(parser, PredefinedEnumParser.class);
+ if (_oclIsKindOf) {
+ _or = true;
+ } else {
+ boolean _oclIsKindOf_1 = this._common_qvto.oclIsKindOf(parser, OclChoiceParser.class);
+ _or = _oclIsKindOf_1;
+ }
+ return _or;
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/CompartmentEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/CompartmentEditPart.java
new file mode 100644
index 00000000000..8bbff76b603
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/CompartmentEditPart.java
@@ -0,0 +1,86 @@
+/**
+ * Copyright (c) 2006, 2009 Borland Software Corporation
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class CompartmentEditPart extends impl.diagram.editparts.CompartmentEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private xpt.diagram.editparts.Common xptEditpartsCommon;
+
+ public Object createDefaultEditPoliciesBody(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("super.createDefaultEditPolicies();");
+ _builder.newLine();
+ {
+ boolean _isCanCollapse = it.isCanCollapse();
+ if (_isCanCollapse) {
+ _builder.append("installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy());");
+ _builder.newLine();
+ }
+ }
+ CharSequence _installSemanticEditPolicy = this.xptEditpartsCommon.installSemanticEditPolicy(it);
+ _builder.append(_installSemanticEditPolicy, "");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ boolean _isEmpty = _childNodes.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ _builder.append("installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy());");
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy());");
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.papyrus.uml.diagram.common.editpolicies.DuplicatePasteEditPolicy.PASTE_ROLE, new org.eclipse.papyrus.uml.diagram.common.editpolicies.DuplicatePasteEditPolicy());");
+ _builder.newLine();
+ }
+ }
+ CharSequence _installCanonicalEditPolicy = this.xptEditpartsCommon.installCanonicalEditPolicy(it);
+ _builder.append(_installCanonicalEditPolicy, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _behaviour = this.xptEditpartsCommon.behaviour(it);
+ _builder.append(_behaviour, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence getTargetEditPartMethod(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gef.EditPart getTargetEditPart(org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return super.getTargetEditPart(request);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/DiagramEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/DiagramEditPart.java
new file mode 100644
index 00000000000..94726f3e76f
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/DiagramEditPart.java
@@ -0,0 +1,225 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.diagram.commands.CreateShortcutDecorationsCommand;
+import xpt.diagram.editparts.Common;
+import xpt.diagram.editparts.Utils_qvto;
+
+/**
+ * Revisit: [MG]: @Inject extension same-named-api-class -> template extends api-class?
+ */
+@Singleton
+@SuppressWarnings("all")
+public class DiagramEditPart extends impl.diagram.editparts.DiagramEditPart {
+ @Inject
+ @Extension
+ private MetaModel _metaModel;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private Common xptEditpartsCommon;
+
+ @Inject
+ private CreateShortcutDecorationsCommand createShoutrtcutDecorationCommand;
+
+ public CharSequence extendsListContents(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpart.PapyrusDiagramEditPart");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createDefaultEditPoliciesBody(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("super.createDefaultEditPolicies();");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy());");
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.papyrus.uml.diagram.common.editpolicies.DuplicatePasteEditPolicy.PASTE_ROLE, new org.eclipse.papyrus.uml.diagram.common.editpolicies.DuplicatePasteEditPolicy());");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _installSemanticEditPolicy = this.xptEditpartsCommon.installSemanticEditPolicy(it);
+ _builder.append(_installSemanticEditPolicy, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _installCanonicalEditPolicy = this.xptEditpartsCommon.installCanonicalEditPolicy(it);
+ _builder.append(_installCanonicalEditPolicy, "");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _and = false;
+ boolean _generateCreateShortcutAction = it.generateCreateShortcutAction();
+ if (!_generateCreateShortcutAction) {
+ _and = false;
+ } else {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ _and = _equals;
+ }
+ if (_and) {
+ _builder.append("installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.DRAG_DROP_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.DiagramDragDropEditPolicy() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.gef.commands.Command getDropObjectsCommand(org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest dropRequest) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor> viewDescriptors = new java.util.ArrayList<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<?> it = dropRequest.getObjects().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Object nextObject = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (false == nextObject instanceof org.eclipse.emf.ecore.EObject) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("continue;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewDescriptors.add(new org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter((org.eclipse.emf.ecore.EObject) nextObject), org.eclipse.gmf.runtime.notation.Node.class, null, getDiagramPreferencesHint()));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return createShortcutsCommand(dropRequest, viewDescriptors);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.gef.commands.Command createShortcutsCommand(org.eclipse.gmf.runtime.diagram.ui.requests.DropObjectsRequest dropRequest, java.util.List<org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor> viewDescriptors) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.commands.Command command = createViewsAndArrangeCommand(dropRequest, viewDescriptors);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (command != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return command.chain(new org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy(new ");
+ CharSequence _qualifiedClassName = this.createShoutrtcutDecorationCommand.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append("(getEditingDomain(), (org.eclipse.gmf.runtime.notation.View) getModel(), viewDescriptors)));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("});");
+ _builder.newLine();
+ }
+ }
+ {
+ boolean _shouldGenerateDiagramViewmap = this._utils_qvto.shouldGenerateDiagramViewmap(it);
+ if (_shouldGenerateDiagramViewmap) {
+ _builder.append("// diagram figure does layout; need to install child editpolicy to show selection feedback");
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.gef.EditPolicy.LAYOUT_ROLE, new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final org.eclipse.gef.editpolicies.NonResizableEditPolicy p = new org.eclipse.gef.editpolicies.NonResizableEditPolicy();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("p.setDragAllowed(false);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return p;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getMoveChildrenCommand(org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gef.requests.CreateRequest request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("});");
+ _builder.newLine();
+ }
+ }
+ CharSequence _behaviour = this.xptEditpartsCommon.behaviour(it);
+ _builder.append(_behaviour, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("// removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE);");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence featureForMetaclass(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("if (");
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ GenClass _metaClass = _modelFacet.getMetaClass();
+ CharSequence _MetaClass = this._metaModel.MetaClass(_metaClass);
+ _builder.append(_MetaClass, "");
+ _builder.append(".equals(class1)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return ");
+ TypeModelFacet _modelFacet_1 = it.getModelFacet();
+ GenFeature _containmentMetaFeature = _modelFacet_1.getContainmentMetaFeature();
+ CharSequence _MetaFeature = this._metaModel.MetaFeature(_containmentMetaFeature);
+ _builder.append(_MetaFeature, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.java
new file mode 100644
index 00000000000..cd06d1d00a7
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.java
@@ -0,0 +1,28 @@
+/**
+ * Copyright (c) 2014 CEA LIST and others.
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ */
+package aspects.impl.diagram.editparts;
+
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+/**
+ * @author Mickael ADAM
+ */
+@SuppressWarnings("all")
+public class ExternalNodeLabelEditPart extends impl.diagram.editparts.ExternalNodeLabelEditPart {
+ public CharSequence additionalEditPolicies(final GenExternalNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.ExternalLabelPrimaryDragRoleEditPolicy());");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkEditPart.java
new file mode 100644
index 00000000000..12463f983ed
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkEditPart.java
@@ -0,0 +1,271 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Remi Schnekenburger (CEA LIST) - modification for Papyrus MDT
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FigureViewmap;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.InnerClassViewmap;
+import org.eclipse.gmf.codegen.gmfgen.ModeledViewmap;
+import org.eclipse.gmf.codegen.gmfgen.SnippetViewmap;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+
+/**
+ * Revisit: [MG]: @Inject extension same-named-api-class -> template extends api-class?
+ */
+@Singleton
+@SuppressWarnings("all")
+public class LinkEditPart extends impl.diagram.editparts.LinkEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence extendsListContents(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ CharSequence _specifyInheritance = this.specifyInheritance(extendedObject);
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpart.ConnectionEditPart");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specifyInheritance(final ExtendedGenView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _superOwnedEditPart = it.getSuperOwnedEditPart();
+ _builder.append(_superOwnedEditPart, "");
+ return _builder;
+ }
+
+ public CharSequence addFixedChild(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ int _size = _labels.size();
+ boolean _greaterThan = (_size > 0);
+ if (_greaterThan) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean addFixedChild(org.eclipse.gef.EditPart childEditPart) {");
+ _builder.newLine();
+ {
+ EList<GenLinkLabel> _labels_1 = it.getLabels();
+ for(final GenLinkLabel label : _labels_1) {
+ _builder.append("\t");
+ Viewmap _viewmap = label.getViewmap();
+ CharSequence _addLabel = this.addLabel(_viewmap, label);
+ _builder.append(_addLabel, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence removeFixedChild(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ boolean _isEmpty = _labels.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean removeFixedChild(org.eclipse.gef.EditPart childEditPart) {");
+ _builder.newLine();
+ {
+ EList<GenLinkLabel> _labels_1 = it.getLabels();
+ for(final GenLinkLabel label : _labels_1) {
+ _builder.append("\t");
+ Viewmap _viewmap = label.getViewmap();
+ CharSequence _removeLabel = this.removeLabel(_viewmap, label);
+ _builder.append(_removeLabel, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence addChildVisual(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ boolean _isEmpty = _labels.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void addChildVisual(org.eclipse.gef.EditPart childEditPart, int index) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (addFixedChild(childEditPart)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.addChildVisual(childEditPart, -1);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence removeChildVisual(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ boolean _isEmpty = _labels.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void removeChildVisual(org.eclipse.gef.EditPart childEditPart) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (removeFixedChild(childEditPart)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.removeChildVisual(childEditPart);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _createLinkFigure(final ModeledViewmap it, final GenLink link) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence modeledViewmapFigureFQN(final ModeledViewmap it) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence createLinkFigure(final Viewmap it, final GenLink link) {
+ if (it instanceof FigureViewmap) {
+ return _createLinkFigure((FigureViewmap)it, link);
+ } else if (it instanceof InnerClassViewmap) {
+ return _createLinkFigure((InnerClassViewmap)it, link);
+ } else if (it instanceof ModeledViewmap) {
+ return _createLinkFigure((ModeledViewmap)it, link);
+ } else if (it instanceof SnippetViewmap) {
+ return _createLinkFigure((SnippetViewmap)it, link);
+ } else if (it != null) {
+ return _createLinkFigure(it, link);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, link).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkLabelEditPart.java
new file mode 100644
index 00000000000..41d0335f5d7
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/LinkLabelEditPart.java
@@ -0,0 +1,63 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.diagram.editparts.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class LinkLabelEditPart extends impl.diagram.editparts.LinkLabelEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence handleNotificationEventBody(final GenLinkLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("Object feature = event.getFeature();");
+ _builder.newLine();
+ CharSequence _handleText = this._common.handleText(it);
+ _builder.append(_handleText, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ boolean _isElementIcon = it.isElementIcon();
+ if (_isElementIcon) {
+ _builder.append("if(event.getNewValue() instanceof org.eclipse.emf.ecore.EAnnotation && org.eclipse.papyrus.infra.emf.appearance.helper.VisualInformationPapyrusConstants.DISPLAY_NAMELABELICON.equals(((org.eclipse.emf.ecore.EAnnotation)event.getNewValue()).getSource())){\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshLabel();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("super.handleNotificationEvent(event);");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence linkLabelDragPolicyQualifiedClassName(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.PapyrusLinkLabelDragPolicy");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeEditPart.java
new file mode 100644
index 00000000000..20e5a7b52bc
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeEditPart.java
@@ -0,0 +1,1021 @@
+/**
+ * Copyright (c) 2006, 2010 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Patrick Tessier (CEA) - initial API and implementation
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ * Vincent Lorenzo (CEA-LIST) - Bug 335987 [General][Enhancement] Show/Hide Connectors Labels and External Nodes Labels
+ */
+package aspects.impl.diagram.editparts;
+
+import aspects.xpt.CodeStyle;
+import aspects.xpt.editor.VisualIDRegistry;
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import impl.diagram.editparts.TextAware;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildSideAffixedNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorChildReference;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.papyrus.papyrusgmfgenextension.ExtendedGenView;
+import org.eclipse.papyrus.papyrusgmfgenextension.PropertyRefreshHook;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import utils.EditPartsUtils_qvto;
+import xpt.Common;
+import xpt.diagram.editparts.EditPartFactory;
+import xpt.diagram.editparts.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class NodeEditPart extends impl.diagram.editparts.NodeEditPart {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ @Extension
+ private EditPartsUtils_qvto _editPartsUtils_qvto;
+
+ @Inject
+ @Extension
+ private VisualIDRegistry _visualIDRegistry;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private EditPartFactory xptEditPartFactory;
+
+ @Inject
+ private TextAware xptTextAware;
+
+ protected CharSequence _extendsListContents(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ CharSequence _specifyInheritance = this.specifyInheritance(((ExtendedGenView) extendedObject));
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpart.NodeEditPart");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _extendsListContents(final GenChildSideAffixedNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_2 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ boolean _and = false;
+ EList<GenCommonBase> _genView = v.getGenView();
+ boolean _contains = _genView.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ String _superOwnedEditPart = v.getSuperOwnedEditPart();
+ boolean _notEquals = (!Objects.equal(_superOwnedEditPart, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<ExtendedGenView> _filter_3 = IteratorExtensions.<ExtendedGenView>filter(_filter_2, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_3);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ CharSequence _specifyInheritance = this.specifyInheritance(extendedObject);
+ _builder.append(_specifyInheritance, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ } else {
+ {
+ boolean _hasBorderItems = this._utils_qvto.hasBorderItems(it);
+ if (_hasBorderItems) {
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.BorderedBorderItemEditPart");
+ } else {
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.AbstractBorderItemEditPart");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence addFixedChild(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected boolean addFixedChild(org.eclipse.gef.EditPart childEditPart) {");
+ _builder.newLine();
+ {
+ Iterable<? extends GenLabel> _innerFixedLabels = this._utils_qvto.getInnerFixedLabels(it);
+ for(final GenLabel label : _innerFixedLabels) {
+ Viewmap _viewmap = label.getViewmap();
+ ParentAssignedViewmap childViewmap = ((ParentAssignedViewmap) _viewmap);
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (childEditPart instanceof ");
+ CharSequence _editPartQualifiedClassName = this.xptEditPartFactory.getEditPartQualifiedClassName(label);
+ _builder.append(_editPartQualifiedClassName, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("((");
+ CharSequence _editPartQualifiedClassName_1 = this.xptEditPartFactory.getEditPartQualifiedClassName(label);
+ _builder.append(_editPartQualifiedClassName_1, "\t\t\t");
+ _builder.append(") childEditPart).");
+ CharSequence _labelSetterName = this.xptTextAware.labelSetterName(childViewmap);
+ _builder.append(_labelSetterName, "\t\t\t");
+ _builder.append("(getPrimaryShape().");
+ String _getterName = childViewmap.getGetterName();
+ _builder.append(_getterName, "\t\t\t");
+ _builder.append("());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ {
+ Iterable<GenCompartment> _pinnedCompartments = this._utils_qvto.getPinnedCompartments(it);
+ for(final GenCompartment compartment : _pinnedCompartments) {
+ Viewmap _viewmap_1 = compartment.getViewmap();
+ ParentAssignedViewmap childViewmap_1 = ((ParentAssignedViewmap) _viewmap_1);
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (childEditPart instanceof ");
+ String _editPartQualifiedClassName_2 = compartment.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_2, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.draw2d.IFigure pane = getPrimaryShape().");
+ String _getterName_1 = childViewmap_1.getGetterName();
+ _builder.append(_getterName_1, "\t\t\t");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("setupContentPane(pane); // FIXME each comparment should handle his content pane in his own way ");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("pane.add(((");
+ String _editPartQualifiedClassName_3 = compartment.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_3, "\t\t\t");
+ _builder.append(") childEditPart).getFigure());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}\t");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ {
+ Iterable<GenChildSideAffixedNode> _sideAffixedChildren = this._utils_qvto.getSideAffixedChildren(it);
+ for(final GenChildSideAffixedNode child : _sideAffixedChildren) {
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<SpecificLocator> _filter = Iterators.<SpecificLocator>filter(_allContents, SpecificLocator.class);
+ final Function1<SpecificLocator, Boolean> _function = new Function1<SpecificLocator, Boolean>() {
+ public Boolean apply(final SpecificLocator v) {
+ EList<GenChildSideAffixedNode> _genChildSideAffixedNode = v.getGenChildSideAffixedNode();
+ return Boolean.valueOf(_genChildSideAffixedNode.contains(child));
+ }
+ };
+ Iterator<SpecificLocator> _filter_1 = IteratorExtensions.<SpecificLocator>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<SpecificLocator> _filter_2 = Iterators.<SpecificLocator>filter(_allContents_1, SpecificLocator.class);
+ final Function1<SpecificLocator, Boolean> _function_1 = new Function1<SpecificLocator, Boolean>() {
+ public Boolean apply(final SpecificLocator v) {
+ EList<GenChildSideAffixedNode> _genChildSideAffixedNode = v.getGenChildSideAffixedNode();
+ return Boolean.valueOf(_genChildSideAffixedNode.contains(child));
+ }
+ };
+ Iterator<SpecificLocator> _filter_3 = IteratorExtensions.<SpecificLocator>filter(_filter_2, _function_1);
+ Iterable<SpecificLocator> _iterable = IteratorExtensions.<SpecificLocator>toIterable(_filter_3);
+ for(final SpecificLocator extendedObject : _iterable) {
+ CharSequence _genSpecificLocator = this.genSpecificLocator(extendedObject, child);
+ _builder.append(_genSpecificLocator, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ } else {
+ _builder.append("if (childEditPart instanceof ");
+ String _editPartQualifiedClassName_4 = child.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_4, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator locator = new org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator(getMainFigure(), org.eclipse.draw2d.PositionConstants.");
+ String _preferredSideName = child.getPreferredSideName();
+ _builder.append(_preferredSideName, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("getBorderedFigure().getBorderItemContainer().add(((");
+ String _editPartQualifiedClassName_5 = child.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_5, "\t\t\t");
+ _builder.append(") childEditPart).getFigure(), locator);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence installGraphicalNodeEditPolicy(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("installEditPolicy(org.eclipse.gef.EditPolicy.GRAPHICAL_NODE_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultGraphicalNodeEditPolicy());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setLineWidth(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setLineWidth(int width) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.setLineWidth(width);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setLineStyle(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setLineType(int style) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (primaryShape instanceof org.eclipse.papyrus.infra.gmfdiag.common.figure.node.IPapyrusNodeFigure) {\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.papyrus.infra.gmfdiag.common.figure.node.IPapyrusNodeFigure) primaryShape).setLineStyle(style);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createFigure(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment(
+ ((("Creates figure for this edit part.\n" +
+ "\n") +
+ "Body of this method does not depend on settings in generation model\n") +
+ "so you may safely remove <i>generated</i> tag and modify it.\n"));
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure create");
+ {
+ boolean _hasBorderItems = this._utils_qvto.hasBorderItems(it);
+ if (_hasBorderItems) {
+ _builder.append("Main");
+ } else {
+ _builder.append("Node");
+ }
+ }
+ _builder.append("Figure() {");
+ _builder.newLineIfNotEmpty();
+ {
+ if ((it instanceof GenChildSideAffixedNode)) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure figure = createNodePlate();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("figure.setLayoutManager(new org.eclipse.draw2d.StackLayout());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.draw2d.IFigure shape = createNodeShape();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("figure.add(shape);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("contentPane = setupContentPane(shape);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return figure;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.papyrus.infra.gmfdiag.common.figure.node.SelectableBorderedNodeFigure(createMainFigureWithSVG());");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence borderItemSelectionEditPolicy(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _hasBorderItems = this._utils_qvto.hasBorderItems(it);
+ if (_hasBorderItems) {
+ _builder.append("org.eclipse.gmf.runtime.notation.View childView = (org.eclipse.gmf.runtime.notation.View) child.getModel();");
+ _builder.newLine();
+ _builder.append("switch (");
+ GenDiagram _diagram = it.getDiagram();
+ CharSequence _visualIDMethodCall = this._visualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "");
+ _builder.append("(childView)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenExternalNodeLabel> _externalLabels = this._utils_qvto.getExternalLabels(it);
+ int _size = IterableExtensions.size(_externalLabels);
+ boolean _greaterThan = (_size > 0);
+ if (_greaterThan) {
+ {
+ Iterable<GenExternalNodeLabel> _externalLabels_1 = this._utils_qvto.getExternalLabels(it);
+ for(final GenExternalNodeLabel nextLabel : _externalLabels_1) {
+ CharSequence _caseVisualID = this._visualIDRegistry.caseVisualID(nextLabel);
+ _builder.append(_caseVisualID, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return ");
+ CharSequence _borderItemSelectionEP = this.borderItemSelectionEP(it);
+ _builder.append(_borderItemSelectionEP, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ Iterable<GenChildSideAffixedNode> _sideAffixedChildren = this._utils_qvto.getSideAffixedChildren(it);
+ int _size_1 = IterableExtensions.size(_sideAffixedChildren);
+ boolean _greaterThan_1 = (_size_1 > 0);
+ if (_greaterThan_1) {
+ {
+ Iterable<GenChildSideAffixedNode> _sideAffixedChildren_1 = this._utils_qvto.getSideAffixedChildren(it);
+ for(final GenChildSideAffixedNode nextBorderItem : _sideAffixedChildren_1) {
+ CharSequence _caseVisualID_1 = this._visualIDRegistry.caseVisualID(nextBorderItem);
+ _builder.append(_caseVisualID_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return new org.eclipse.papyrus.uml.diagram.common.editpolicies.BorderItemResizableEditPolicy();");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence createLayoutEditPolicyBody_FLOW_LAYOUT(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editpolicies.FlowLayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.FlowLayoutEditPolicy() {");
+ _builder.newLine();
+ {
+ boolean _hasBorderItems = this._utils_qvto.hasBorderItems(it);
+ if (_hasBorderItems) {
+ _builder.append("\t");
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _borderItemSelectionEditPolicy = this.borderItemSelectionEditPolicy(it);
+ _builder.append(_borderItemSelectionEditPolicy, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return super.createChildEditPolicy(child);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC_1 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command createAddCommand(org.eclipse.gef.EditPart child, org.eclipse.gef.EditPart after) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC_2 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command createMoveChildCommand(org.eclipse.gef.EditPart child, org.eclipse.gef.EditPart after) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC_3 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gef.requests.CreateRequest request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("return lep;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createLayoutEditPolicyBody_DEFAULT(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _borderItemSelectionEditPolicy = this.borderItemSelectionEditPolicy(it);
+ _builder.append(_borderItemSelectionEditPolicy, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.EditPolicy result = child.getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (result == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("result = new org.eclipse.gef.editpolicies.NonResizableEditPolicy();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC_1 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getMoveChildrenCommand(org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC_2 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gef.requests.CreateRequest request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("return lep;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence specifyInheritance(final ExtendedGenView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _superOwnedEditPart = it.getSuperOwnedEditPart();
+ _builder.append(_superOwnedEditPart, "");
+ return _builder;
+ }
+
+ public CharSequence genSpecificLocator(final GenCommonBase it, final GenChildSideAffixedNode child) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence genSpecificLocator(final ToolEntry it, final GenChildSideAffixedNode child) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence genSpecificLocator(final GenNavigatorChildReference it, final GenChildSideAffixedNode child) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence genSpecificLocator(final SpecificLocator it, final GenChildSideAffixedNode child) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("//Papyrus Gencode :");
+ String _comment = it.getComment();
+ _builder.append(_comment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (childEditPart instanceof ");
+ String _editPartQualifiedClassName = child.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator locator = new ");
+ String _classpath = it.getClasspath();
+ _builder.append(_classpath, "\t\t\t");
+ _builder.append("(getMainFigure(), org.eclipse.draw2d.PositionConstants.");
+ String _preferredSideName = child.getPreferredSideName();
+ _builder.append(_preferredSideName, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("getBorderedFigure().getBorderItemContainer().add(((");
+ String _editPartQualifiedClassName_1 = child.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_1, "\t\t\t");
+ _builder.append(") childEditPart).getFigure(), locator);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence borderItemSelectionEP(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("new org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected java.util.List<?> createSelectionHandles() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.handles.MoveHandle mh = new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("mh.setBorder(null);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return java.util.Collections.singletonList(mh);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence specificHandleNotificationEvent(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ExtendedGenView> _filter = Iterators.<ExtendedGenView>filter(_allContents, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ EList<GenCommonBase> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<ExtendedGenView> _filter_1 = IteratorExtensions.<ExtendedGenView>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("*Papyrus codeGen");
+ _builder.newLine();
+ _builder.append("*@generated");
+ _builder.newLine();
+ _builder.append("**/");
+ _builder.newLine();
+ _builder.append("protected void handleNotificationEvent(org.eclipse.emf.common.notify.Notification event) {");
+ _builder.newLine();
+ {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ Iterable<GenExternalNodeLabel> _filter_2 = Iterables.<GenExternalNodeLabel>filter(_labels, GenExternalNodeLabel.class);
+ int _size_1 = IterableExtensions.size(_filter_2);
+ boolean _notEquals_1 = (_size_1 != 0);
+ if (_notEquals_1) {
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* when a node have external node labels, the methods refreshChildren() remove the EditPart corresponding to the Label from the EditPart");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Registry. After that, we can\'t reset the visibility to true (using the Show/Hide Label Action)!");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("if(org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getView_Visible().equals(event.getFeature())) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object notifier = event.getNotifier();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<?> modelChildren = ((org.eclipse.gmf.runtime.notation.View)getModel()).getChildren();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(!(notifier instanceof org.eclipse.gmf.runtime.notation.Edge)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(modelChildren.contains(event.getNotifier())) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("super.handleNotificationEvent(event);");
+ _builder.newLine();
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<ExtendedGenView> _filter_3 = Iterators.<ExtendedGenView>filter(_allContents_1, ExtendedGenView.class);
+ final Function1<ExtendedGenView, Boolean> _function_1 = new Function1<ExtendedGenView, Boolean>() {
+ public Boolean apply(final ExtendedGenView v) {
+ EList<GenCommonBase> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<ExtendedGenView> _filter_4 = IteratorExtensions.<ExtendedGenView>filter(_filter_3, _function_1);
+ Iterable<ExtendedGenView> _iterable = IteratorExtensions.<ExtendedGenView>toIterable(_filter_4);
+ for(final ExtendedGenView extendedObject : _iterable) {
+ {
+ PropertyRefreshHook _propRefreshHook = extendedObject.getPropRefreshHook();
+ boolean _notEquals_2 = (!Objects.equal(_propRefreshHook, null));
+ if (_notEquals_2) {
+ _builder.append("\t");
+ PropertyRefreshHook _propRefreshHook_1 = extendedObject.getPropRefreshHook();
+ CharSequence _specificHandleNotificationEventBody = this.specificHandleNotificationEventBody(_propRefreshHook_1);
+ _builder.append(_specificHandleNotificationEventBody, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence specificHandleNotificationEventBody(final PropertyRefreshHook it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ String _comment = it.getComment();
+ boolean _notEquals = (!Objects.equal(_comment, null));
+ if (_notEquals) {
+ _builder.append("//");
+ String _comment_1 = it.getComment();
+ _builder.append(_comment_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("if (resolveSemanticElement() != null) {");
+ _builder.newLine();
+ _builder.append("if(");
+ String _triggeringCondition = it.getTriggeringCondition();
+ _builder.append(_triggeringCondition, "");
+ _builder.append("){");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ String _action = it.getAction();
+ _builder.append(_action, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("refreshVisuals();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addBorderItem(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Iterable<GenExternalNodeLabel> _externalLabels = this._utils_qvto.getExternalLabels(it);
+ int _size = IterableExtensions.size(_externalLabels);
+ boolean _greaterThan = (_size > 0);
+ if (_greaterThan) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void addBorderItem(org.eclipse.draw2d.IFigure borderItemContainer, org.eclipse.gmf.runtime.diagram.ui.editparts.IBorderItemEditPart borderItemEditPart) {");
+ _builder.newLine();
+ {
+ List<GenExternalNodeLabel> _externalLabelsWithoutSpecificLocator = this._editPartsUtils_qvto.getExternalLabelsWithoutSpecificLocator(it);
+ int _size_1 = _externalLabelsWithoutSpecificLocator.size();
+ boolean _greaterThan_1 = (_size_1 > 0);
+ if (_greaterThan_1) {
+ _builder.append("if (");
+ {
+ List<GenExternalNodeLabel> _externalLabelsWithoutSpecificLocator_1 = this._editPartsUtils_qvto.getExternalLabelsWithoutSpecificLocator(it);
+ boolean _hasElements = false;
+ for(final GenExternalNodeLabel label : _externalLabelsWithoutSpecificLocator_1) {
+ if (!_hasElements) {
+ _hasElements = true;
+ } else {
+ _builder.appendImmediate(" || ", "");
+ }
+ _builder.append("borderItemEditPart instanceof ");
+ String _editPartQualifiedClassName = label.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName, "");
+ }
+ }
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator locator = new org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator(getMainFigure(), org.eclipse.draw2d.PositionConstants.SOUTH);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("locator.setBorderItemOffset(new org.eclipse.draw2d.geometry.Dimension(-20, -20));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("borderItemContainer.add(borderItemEditPart.getFigure(), locator);");
+ _builder.newLine();
+ _builder.append("} else");
+ _builder.newLine();
+ }
+ }
+ {
+ List<GenExternalNodeLabel> _externalLabelsWithSpecificLocator = this._editPartsUtils_qvto.getExternalLabelsWithSpecificLocator(it);
+ for(final GenExternalNodeLabel label_1 : _externalLabelsWithSpecificLocator) {
+ _builder.append("if (borderItemEditPart instanceof ");
+ String _editPartQualifiedClassName_1 = label_1.getEditPartQualifiedClassName();
+ _builder.append(_editPartQualifiedClassName_1, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.figures.IBorderItemLocator locator = new ");
+ String _specificLocator = this._editPartsUtils_qvto.getSpecificLocator(label_1);
+ _builder.append(_specificLocator, "\t");
+ _builder.append("(getMainFigure());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("borderItemContainer.add(borderItemEditPart.getFigure(), locator);");
+ _builder.newLine();
+ _builder.append("} else");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.addBorderItem(borderItemContainer, borderItemEditPart);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence setupNodePlate(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence setupNodePlate(final GenChildSideAffixedNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("//FIXME: workaround for #154536");
+ _builder.newLine();
+ _builder.append("result.getBounds().setSize(result.getPreferredSize());");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence extendsListContents(final GenNode it) {
+ if (it instanceof GenChildSideAffixedNode) {
+ return _extendsListContents((GenChildSideAffixedNode)it);
+ } else if (it != null) {
+ return _extendsListContents(it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeLabelEditPart.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeLabelEditPart.java
new file mode 100644
index 00000000000..34f9c476455
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/NodeLabelEditPart.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.diagram.editparts.Common;
+import xpt.diagram.editparts.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class NodeLabelEditPart extends impl.diagram.editparts.NodeLabelEditPart {
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private Common xptEditpartsCommon;
+
+ public CharSequence handleNotificationEventBody(final GenNodeLabel it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("Object feature = event.getFeature();");
+ _builder.newLine();
+ {
+ GenNode _node = it.getNode();
+ boolean _isStoringChildPositions = this._utils_qvto.isStoringChildPositions(_node);
+ if (_isStoringChildPositions) {
+ CharSequence _handleBounds = this.xptEditpartsCommon.handleBounds(it);
+ _builder.append(_handleBounds, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ CharSequence _handleText = this.xptEditpartsCommon.handleText(it);
+ _builder.append(_handleText, "");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isElementIcon = it.isElementIcon();
+ if (_isElementIcon) {
+ _builder.append("if(event.getNewValue() instanceof org.eclipse.emf.ecore.EAnnotation && org.eclipse.papyrus.infra.emf.appearance.helper.VisualInformationPapyrusConstants.DISPLAY_NAMELABELICON.equals(((org.eclipse.emf.ecore.EAnnotation)event.getNewValue()).getSource())){\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshLabel();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("super.handleNotificationEvent(event);");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/TextAware.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/TextAware.java
new file mode 100644
index 00000000000..d1bc2ea9d42
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/editparts/TextAware.java
@@ -0,0 +1,2054 @@
+/**
+ * Copyright (c) 2006-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.editparts;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.DesignLabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.ParentAssignedViewmap;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import parsers.ParserProvider;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.diagram.ViewmapAttributesUtils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class TextAware extends impl.diagram.editparts.TextAware {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ @Extension
+ private ViewmapAttributesUtils_qvto _viewmapAttributesUtils_qvto;
+
+ @Inject
+ @Extension
+ private ParserProvider _parserProvider;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ public CharSequence fields(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.gef.tools.DirectEditManager manager;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.gmf.runtime.common.ui.services.parser.IParser parser;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.List<?> parserElements;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private String defaultText;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment("direct edition mode (default, undefined, registered editor, etc.)");
+ _builder.append(_generatedMemberComment_4, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected int directEditionMode = org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.UNDEFINED_DIRECT_EDITOR;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment("configuration from a registered edit dialog");
+ _builder.append(_generatedMemberComment_5, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration configuration;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public Object methods(final GenCommonBase it, final boolean needsRefreshBounds, final boolean readOnly, final boolean useElementIcon, final Viewmap viewmap, final LabelModelFacet modelFacet, final GenCommonBase host, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _labelTextHelper = this.getLabelTextHelper(it);
+ _builder.append(_labelTextHelper, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setLabelTextHelper = this.setLabelTextHelper(it);
+ _builder.append(_setLabelTextHelper, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _labelIconHelper = this.getLabelIconHelper(it);
+ _builder.append(_labelIconHelper, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setLabelIconHelper = this.setLabelIconHelper(it);
+ _builder.append(_setLabelIconHelper, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _labelSetter = this.labelSetter(it);
+ _builder.append(_labelSetter, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _modelChildren = this.getModelChildren(it);
+ _builder.append(_modelChildren, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _childBySemanticHint = this.getChildBySemanticHint(it);
+ _builder.append(_childBySemanticHint, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _setParser = this.setParser(it);
+ _builder.append(_setParser, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _parserElement = this.getParserElement(it, modelFacet);
+ _builder.append(_parserElement, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _labelIcon = this.getLabelIcon(it, useElementIcon, diagram);
+ _builder.append(_labelIcon, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _labelText = this.getLabelText(it);
+ _builder.append(_labelText, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setLabelText = this.setLabelText(it, diagram);
+ _builder.append(_setLabelText, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _editText = this.getEditText(it);
+ _builder.append(_editText, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _isEditable = this.isEditable(it, readOnly);
+ _builder.append(_isEditable, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _editTextValidator = this.getEditTextValidator(it);
+ _builder.append(_editTextValidator, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _completionProcessor = this.getCompletionProcessor(it);
+ _builder.append(_completionProcessor, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _parserOptions = this.getParserOptions(it);
+ _builder.append(_parserOptions, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _parser = this.getParser(it, modelFacet, diagram, host);
+ _builder.append(_parser, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _manager = this.getManager(it, diagram);
+ _builder.append(_manager, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setManager = this.setManager(it);
+ _builder.append(_setManager, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _performDirectEdit = this.performDirectEdit(it);
+ _builder.append(_performDirectEdit, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _performDirectEditAtPoint = this.performDirectEditAtPoint(it);
+ _builder.append(_performDirectEditAtPoint, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _performDirectEditWithInitialChar = this.performDirectEditWithInitialChar(it);
+ _builder.append(_performDirectEditWithInitialChar, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _performDirectEditRequest = this.performDirectEditRequest(it, diagram);
+ _builder.append(_performDirectEditRequest, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _initializeDirectEditManager = this.initializeDirectEditManager(it);
+ _builder.append(_initializeDirectEditManager, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _refreshVisuals = this.refreshVisuals(it, needsRefreshBounds);
+ _builder.append(_refreshVisuals, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _refreshLabel = this.refreshLabel(it, diagram);
+ _builder.append(_refreshLabel, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _refreshUnderline = this.refreshUnderline(it);
+ _builder.append(_refreshUnderline, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _refreshStrikeThrough = this.refreshStrikeThrough(it);
+ _builder.append(_refreshStrikeThrough, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _refreshFont = this.refreshFont(it);
+ _builder.append(_refreshFont, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setFontColor = this.setFontColor(it);
+ _builder.append(_setFontColor, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _addSemanticListeners = this.addSemanticListeners(it);
+ _builder.append(_addSemanticListeners, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _removeSemanticListeners = this.removeSemanticListeners(it);
+ _builder.append(_removeSemanticListeners, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _accessibleEditPart = this.getAccessibleEditPart(it);
+ _builder.append(_accessibleEditPart, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _fontStyleOwnerView = this.getFontStyleOwnerView(it, viewmap);
+ _builder.append(_fontStyleOwnerView, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _directEditionType = this.getDirectEditionType(it, Boolean.valueOf(readOnly));
+ _builder.append(_directEditionType, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _checkExtendedEditor = this.checkExtendedEditor(it);
+ _builder.append(_checkExtendedEditor, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _checkDefaultEdition = this.checkDefaultEdition(it);
+ _builder.append(_checkDefaultEdition, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _initExtendedEditorConfiguration = this.initExtendedEditorConfiguration(it);
+ _builder.append(_initExtendedEditorConfiguration, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _updateExtendedEditorConfiguration = this.updateExtendedEditorConfiguration(it);
+ _builder.append(_updateExtendedEditorConfiguration, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _performDefaultDirectEditorEdit = this.performDefaultDirectEditorEdit(it);
+ _builder.append(_performDefaultDirectEditorEdit, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence labelSetterName(final ParentAssignedViewmap it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ String _setterName = it.getSetterName();
+ boolean _notEquals = (!Objects.equal(_setterName, null));
+ if (_notEquals) {
+ String _setterName_1 = it.getSetterName();
+ _builder.append(_setterName_1, "");
+ } else {
+ _builder.append("setLabel");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence labelSetterName(final Viewmap it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("setLabel");
+ return _builder;
+ }
+
+ public CharSequence getLabelTextHelper(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected String getLabelTextHelper(org.eclipse.draw2d.IFigure figure) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (figure instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) figure).getText();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else if (figure instanceof org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) figure).getText();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.draw2d.Label) figure).getText();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setLabelTextHelper(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setLabelTextHelper(org.eclipse.draw2d.IFigure figure, String text) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (figure instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) figure).setText(text);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else if (figure instanceof org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) figure).setText(text);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.draw2d.Label) figure).setText(text);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getLabelIconHelper(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.swt.graphics.Image getLabelIconHelper(org.eclipse.draw2d.IFigure figure) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (figure instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) figure).getIcon();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else if (figure instanceof org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) figure).getIcon();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.draw2d.Label) figure).getIcon();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setLabelIconHelper(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setLabelIconHelper(org.eclipse.draw2d.IFigure figure, org.eclipse.swt.graphics.Image icon) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (figure instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) figure).setIcon(icon);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else if (figure instanceof org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.papyrus.uml.diagram.common.figure.node.ILabelFigure) figure).setIcon(icon);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.draw2d.Label) figure).setIcon(icon);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence labelSetter(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void ");
+ Viewmap _viewmap = it.getViewmap();
+ CharSequence _labelSetterName = this.labelSetterName(_viewmap);
+ _builder.append(_labelSetterName, "");
+ _builder.append("(");
+ Viewmap _viewmap_1 = it.getViewmap();
+ CharSequence _labelSetterFigureClassName = this.labelSetterFigureClassName(_viewmap_1);
+ _builder.append(_labelSetterFigureClassName, "");
+ _builder.append(" figure) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("unregisterVisuals();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("setFigure(figure);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("defaultText = getLabelTextHelper(figure);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("registerVisuals();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshVisuals();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence labelSetterFigureClassName(final ParentAssignedViewmap it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ String _figureQualifiedClassName = it.getFigureQualifiedClassName();
+ boolean _notEquals = (!Objects.equal(_figureQualifiedClassName, null));
+ if (_notEquals) {
+ String _figureQualifiedClassName_1 = it.getFigureQualifiedClassName();
+ _builder.append(_figureQualifiedClassName_1, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("org.eclipse.draw2d.IFigure");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence labelSetterFigureClassName(final Viewmap it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.draw2d.IFigure");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getModelChildren(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected java.util.List<?> getModelChildren() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return java.util.Collections.EMPTY_LIST;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getChildBySemanticHint(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart getChildBySemanticHint(String semanticHint) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setParser(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void setParser(org.eclipse.gmf.runtime.common.ui.services.parser.IParser parser) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("this.parser = parser;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getParserElement(final GenCommonBase it, final LabelModelFacet modelFacet) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.emf.ecore.EObject getParserElement() {");
+ _builder.newLine();
+ {
+ boolean _equals = Objects.equal(modelFacet, null);
+ if (_equals) {
+ _builder.append("org.eclipse.emf.ecore.EObject element = resolveSemanticElement();");
+ _builder.newLine();
+ _builder.append("return element != null ? element : (org.eclipse.gmf.runtime.notation.View) getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ } else {
+ CharSequence _parserElement = this.getParserElement(modelFacet);
+ _builder.append(_parserElement, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getParserElement(final LabelModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("return resolveSemanticElement();");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getParserElement(final DesignLabelModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("return (org.eclipse.gmf.runtime.notation.View) getModel();");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getLabelIcon(final GenCommonBase it, final boolean useElementIcon, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.swt.graphics.Image getLabelIcon() {");
+ _builder.newLine();
+ {
+ if (useElementIcon) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject parserElement = getParserElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (parserElement == null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.notation.View> views = org.eclipse.papyrus.uml.diagram.common.util.DiagramEditPartsUtil.findViews(parserElement, getViewer());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (org.eclipse.gmf.runtime.notation.View view : views) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("if (org.eclipse.papyrus.infra.emf.appearance.helper.AppearanceHelper.showElementIcon(view)) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("return ");
+ String _elementTypesQualifiedClassName = diagram.getElementTypesQualifiedClassName();
+ _builder.append(_elementTypesQualifiedClassName, "\t\t\t");
+ _builder.append(".getImage(parserElement.eClass());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getLabelText(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected String getLabelText() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String text = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject parserElement = getParserElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (parserElement != null && getParser() != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text = getParser().getPrintString(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(parserElement),");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("getParserOptions().intValue());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (text == null || text.length() == 0) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text = defaultText;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return text;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setLabelText(final GenCommonBase it, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void setLabelText(String text) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("setLabelTextHelper(getFigure(), text);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object pdEditPolicy = getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (pdEditPolicy instanceof ");
+ String _textSelectionEditPolicyQualifiedClassName = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("((");
+ String _textSelectionEditPolicyQualifiedClassName_1 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_1, "\t\t");
+ _builder.append(") pdEditPolicy).refreshFeedback();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object sfEditPolicy = getEditPolicy(org.eclipse.gef.EditPolicy.SELECTION_FEEDBACK_ROLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (sfEditPolicy instanceof ");
+ String _textSelectionEditPolicyQualifiedClassName_2 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_2, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("((");
+ String _textSelectionEditPolicyQualifiedClassName_3 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_3, "\t\t");
+ _builder.append(") sfEditPolicy).refreshFeedback();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getEditText(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public String getEditText() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getParserElement() == null || getParser() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return \"\"; ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getParser().getEditString(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(getParserElement()),");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getParserOptions().intValue());");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence isEditable(final GenCommonBase it, final boolean readOnly) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean isEditable() {");
+ _builder.newLine();
+ {
+ if (readOnly) {
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return getParser() != null;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getEditTextValidator(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.jface.viewers.ICellEditorValidator getEditTextValidator() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.jface.viewers.ICellEditorValidator() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public String isValid(final Object value) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (value instanceof String) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("final org.eclipse.emf.ecore.EObject element = getParserElement();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("final org.eclipse.gmf.runtime.common.ui.services.parser.IParser parser = getParser();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus valid =");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus) getEditingDomain().runExclusive(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("new org.eclipse.emf.transaction.RunnableWithResult.Impl<java.lang.Object>() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI_1, "\t\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("setResult(parser.isValidEditString(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(element), (String) value));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return valid.getCode() == org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus.EDITABLE ? null : valid.getMessage();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("} catch (InterruptedException ie) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("ie.printStackTrace();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// shouldn\'t get here");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getCompletionProcessor(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.jface.text.contentassist.IContentAssistProcessor getCompletionProcessor() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getParserElement() == null || getParser() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getParser().getCompletionProcessor(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(getParserElement()));");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getParserOptions(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions getParserOptions() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.ui.services.parser.ParserOptions.NONE;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getParser(final GenCommonBase it, final LabelModelFacet modelFacet, final GenDiagram diagram, final GenCommonBase host) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.common.ui.services.parser.IParser getParser() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (parser == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("parser = ");
+ CharSequence _accessorCall = this._parserProvider.accessorCall(it, host, modelFacet, "getParserElement()");
+ _builder.append(_accessorCall, "\t\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return parser;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getManager(final GenCommonBase it, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.tools.DirectEditManager getManager() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (manager == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("setManager(new org.eclipse.papyrus.uml.diagram.common.directedit.MultilineLabelDirectEditManager(this,");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.directedit.MultilineLabelDirectEditManager.getTextCellEditorClass(this),");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ String _editPartFactoryQualifiedClassName = diagram.getEditPartFactoryQualifiedClassName();
+ _builder.append(_editPartFactoryQualifiedClassName, "\t\t\t");
+ _builder.append(".getTextCellEditorLocator(this)));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return manager;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setManager(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setManager(org.eclipse.gef.tools.DirectEditManager manager) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("this.manager = manager;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performDirectEdit(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void performDirectEdit() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.custom.BusyIndicator.showWhile(org.eclipse.swt.widgets.Display.getDefault(), new java.lang.Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("getManager().show();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performDirectEditAtPoint(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void performDirectEdit(org.eclipse.draw2d.geometry.Point eventLocation) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getManager() instanceof org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager) getManager()).show(eventLocation.getSWTPoint());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performDirectEditWithInitialChar(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private void performDirectEdit(char initialCharacter) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getManager() instanceof org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.diagram.ui.tools.TextDirectEditManager) getManager()).show(initialCharacter);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("performDirectEdit();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performDirectEditRequest(final GenCommonBase it, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void performDirectEditRequest(org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.gef.Request theRequest = request;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.UNDEFINED_DIRECT_EDITOR == directEditionMode) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("directEditionMode = getDirectEditionType();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("switch (directEditionMode) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("case org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.NO_DIRECT_EDITION:");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// no direct edition mode => does nothing");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("case org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.EXTENDED_DIRECT_EDITOR:");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("updateExtendedEditorConfiguration();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (configuration == null || configuration.getLanguage() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// Create default edit manager");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("setManager(new org.eclipse.papyrus.uml.diagram.common.directedit.MultilineLabelDirectEditManager(this,");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.directedit.MultilineLabelDirectEditManager.getTextCellEditorClass(this),");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ String _editPartFactoryQualifiedClassName = diagram.getEditPartFactoryQualifiedClassName();
+ _builder.append(_editPartFactoryQualifiedClassName, "\t\t\t");
+ _builder.append(".getTextCellEditorLocator(this)));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("performDefaultDirectEditorEdit(theRequest);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("configuration.preEditAction(resolveSemanticElement());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.jface.dialogs.Dialog dialog = null;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.ICustomDirectEditorConfiguration) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("setManager(((org.eclipse.papyrus.extensionpoints.editors.configuration.ICustomDirectEditorConfiguration) configuration).createDirectEditManager(this));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("initializeDirectEditManager(theRequest);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else if (configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.IPopupEditorConfiguration) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.papyrus.extensionpoints.editors.ui.IPopupEditorHelper helper = ((org.eclipse.papyrus.extensionpoints.editors.configuration.IPopupEditorConfiguration)configuration).createPopupEditorHelper(this) ;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("helper.showEditor() ;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return ;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("else if(configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.IAdvancedEditorConfiguration) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("dialog = ((org.eclipse.papyrus.extensionpoints.editors.configuration.IAdvancedEditorConfiguration)configuration).createDialog(org.eclipse.ui.PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), resolveSemanticElement(), configuration.getTextToEdit(resolveSemanticElement()));");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else if(configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("dialog = new org.eclipse.papyrus.extensionpoints.editors.ui.ExtendedDirectEditionDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), resolveSemanticElement(), configuration.getTextToEdit(resolveSemanticElement()), configuration);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("final org.eclipse.jface.dialogs.Dialog finalDialog = dialog;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (org.eclipse.jface.window.Window.OK == dialog.open()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain domain = getEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.transaction.RecordingCommand command = new org.eclipse.emf.transaction.RecordingCommand(domain, \"Edit Label\") {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("protected void doExecute() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("configuration.postEditAction(resolveSemanticElement(), ((org.eclipse.papyrus.extensionpoints.editors.ui.ILabelEditorDialog)finalDialog).getValue());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("domain.getCommandStack().execute(command);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("case org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.DEFAULT_DIRECT_EDITOR:");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("initializeDirectEditManager(theRequest);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("default:");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initializeDirectEditManager(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void initializeDirectEditManager(final org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// initialize the direct edit manager");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getEditingDomain().runExclusive(new Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (isActive() && isEditable()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (request.getExtendedData().get(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("Character initialChar = (Character) request.getExtendedData().get(org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("performDirectEdit(initialChar.charValue());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("performDirectEdit();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (InterruptedException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("e.printStackTrace();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshVisuals(final GenCommonBase it, final boolean needsRefreshBounds) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshVisuals() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.refreshVisuals();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshLabel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshFont();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshFontColor();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshUnderline();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("refreshStrikeThrough();");
+ _builder.newLine();
+ {
+ if (needsRefreshBounds) {
+ _builder.append("\t");
+ _builder.append("refreshBounds();");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshLabel(final GenCommonBase it, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshLabel() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gef.EditPolicy maskLabelPolicy = getEditPolicy(org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.IMaskManagedLabelEditPolicy.MASK_MANAGED_LABEL_EDIT_POLICY);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(maskLabelPolicy==null){");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("maskLabelPolicy = getEditPolicy(org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.IndirectMaskLabelEditPolicy.INDRIRECT_MASK_MANAGED_LABEL);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (maskLabelPolicy == null) {");
+ _builder.newLine();
+ {
+ boolean _oclIsKindOf = this._common_qvto.oclIsKindOf(it, GenLinkLabel.class);
+ if (_oclIsKindOf) {
+ _builder.append("\t");
+ _builder.append("setLabelTextHelper(getFigure(), getLabelText());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("setLabelIconHelper(getFigure(), getLabelIcon());");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View)getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(view.isVisible()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("setLabelTextHelper(getFigure(), getLabelText());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("setLabelIconHelper(getFigure(), getLabelIcon());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("else {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("setLabelTextHelper(getFigure(), \"\"); //$NON-NLS-1$");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("setLabelIconHelper(getFigure(), null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}\t");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object pdEditPolicy = getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (pdEditPolicy instanceof ");
+ String _textSelectionEditPolicyQualifiedClassName = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("((");
+ String _textSelectionEditPolicyQualifiedClassName_1 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_1, "\t\t");
+ _builder.append(") pdEditPolicy).refreshFeedback();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object sfEditPolicy = getEditPolicy(org.eclipse.gef.EditPolicy.SELECTION_FEEDBACK_ROLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (sfEditPolicy instanceof ");
+ String _textSelectionEditPolicyQualifiedClassName_2 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_2, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("((");
+ String _textSelectionEditPolicyQualifiedClassName_3 = diagram.getTextSelectionEditPolicyQualifiedClassName();
+ _builder.append(_textSelectionEditPolicyQualifiedClassName_3, "\t\t");
+ _builder.append(") sfEditPolicy).refreshFeedback();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshUnderline(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshUnderline() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.FontStyle style =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.FontStyle) getFontStyleOwnerView().getStyle(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getFontStyle());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (style != null && getFigure() instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) getFigure()).setTextUnderline(style.isUnderline());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(resolveSemanticElement() instanceof org.eclipse.uml2.uml.Feature){");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(((org.eclipse.uml2.uml.Feature)resolveSemanticElement()).isStatic()){");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel)getFigure()).setTextUnderline(true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("else{((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel)getFigure()).setTextUnderline(false);}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshStrikeThrough(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshStrikeThrough() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.FontStyle style =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.FontStyle) getFontStyleOwnerView().getStyle(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getFontStyle());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (style != null && getFigure() instanceof org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.draw2d.ui.figures.WrappingLabel) getFigure()).setTextStrikeThrough(style.isStrikeThrough());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshFont(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void refreshFont() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.FontStyle style =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.FontStyle) getFontStyleOwnerView().getStyle(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getFontStyle());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (style != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.swt.graphics.FontData fontData = new org.eclipse.swt.graphics.FontData(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("style.getFontName(), style.getFontHeight(),");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("(style.isBold() ? org.eclipse.swt.SWT.BOLD : org.eclipse.swt.SWT.NORMAL) |");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("(style.isItalic() ? org.eclipse.swt.SWT.ITALIC : org.eclipse.swt.SWT.NORMAL));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("setFont(fontData);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setFontColor(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setFontColor(org.eclipse.swt.graphics.Color color) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getFigure().setForegroundColor(color);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addSemanticListeners(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void addSemanticListeners() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getParser() instanceof org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject element = resolveSemanticElement();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("parserElements = ((org.eclipse.gmf.runtime.emf.ui.services.parser.ISemanticParser) getParser()).getSemanticElementsBeingParsed(element);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (int i = 0; i < parserElements.size(); i++) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("addListenerFilter(\"SemanticModel\" + i, this, (org.eclipse.emf.ecore.EObject) parserElements.get(i)); ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.addSemanticListeners();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence removeSemanticListeners(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void removeSemanticListeners() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (parserElements != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (int i = 0; i < parserElements.size(); i++) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("removeListenerFilter(\"SemanticModel\" + i); ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.removeSemanticListeners();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getAccessibleEditPart(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.AccessibleEditPart getAccessibleEditPart() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (accessibleEP == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("accessibleEP = new AccessibleGraphicalEditPart() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void getName(org.eclipse.swt.accessibility.AccessibleEvent e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("e.result = getLabelTextHelper(getFigure());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return accessibleEP;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getFontStyleOwnerView(final GenCommonBase it, final Viewmap viewmap) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("private org.eclipse.gmf.runtime.notation.View getFontStyleOwnerView() {");
+ _builder.newLine();
+ {
+ boolean _isFixedFont = this._viewmapAttributesUtils_qvto.isFixedFont(viewmap);
+ if (_isFixedFont) {
+ _builder.append("\t");
+ _builder.append("return (org.eclipse.gmf.runtime.notation.View) getModel();");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return getPrimaryView();");
+ _builder.newLine();
+ }
+ }
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getDirectEditionType(final GenCommonBase it, final Boolean readOnly) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Returns the kind of associated editor for direct edition.");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @return an <code>int</code> corresponding to the kind of direct editor, @see org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("public int getDirectEditionType() {");
+ _builder.newLine();
+ {
+ if ((readOnly).booleanValue()) {
+ _builder.append("\t");
+ _builder.append("// The label is read-only (defined in GMFGen model)");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.NO_DIRECT_EDITION;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("if (checkExtendedEditor()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("initExtendedEditorConfiguration();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.EXTENDED_DIRECT_EDITOR;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (checkDefaultEdition()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.DEFAULT_DIRECT_EDITOR;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// not a named element. no specific editor => do nothing");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.papyrus.uml.diagram.common.editpolicies.IDirectEdition.NO_DIRECT_EDITION;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence checkExtendedEditor(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Checks if an extended editor is present.");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @return <code>true</code> if an extended editor is present.");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("protected boolean checkExtendedEditor() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (resolveSemanticElement() != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil.hasSpecificEditorConfiguration(resolveSemanticElement().eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence checkDefaultEdition(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Checks if a default direct edition is available");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @return <code>true</code> if a default direct edition is available");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("protected boolean checkDefaultEdition() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return (getParser() != null);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initExtendedEditorConfiguration(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Initializes the extended editor configuration");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("protected void initExtendedEditorConfiguration() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (configuration == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final String languagePreferred = org.eclipse.papyrus.extensionpoints.editors.Activator.getDefault().getPreferenceStore().getString(org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.EDITOR_FOR_ELEMENT + resolveSemanticElement().eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (languagePreferred != null && !languagePreferred.equals(\"\")) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("configuration = org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil.findEditorConfiguration(languagePreferred, resolveSemanticElement().eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("configuration = org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil.findEditorConfiguration(org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.UML_LANGUAGE, resolveSemanticElement().eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence updateExtendedEditorConfiguration(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* Updates the preference configuration");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("protected void updateExtendedEditorConfiguration() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String languagePreferred = org.eclipse.papyrus.extensionpoints.editors.Activator.getDefault().getPreferenceStore().getString(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.EDITOR_FOR_ELEMENT + resolveSemanticElement().eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (languagePreferred != null && !languagePreferred.equals(\"\") && !languagePreferred.equals(configuration.getLanguage())) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("configuration = org.eclipse.papyrus.extensionpoints.editors.utils.DirectEditorsUtil.findEditorConfiguration(languagePreferred, resolveSemanticElement()");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append(".eClass().getInstanceClassName());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else if (org.eclipse.papyrus.extensionpoints.editors.utils.IDirectEditorsIds.SIMPLE_DIRECT_EDITOR.equals(languagePreferred)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("configuration = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performDefaultDirectEditorEdit(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("* Performs the direct edit usually used by GMF editors.");
+ _builder.newLine();
+ _builder.append("* @param theRequest the direct edit request that starts the direct edit system");
+ _builder.newLine();
+ _builder.append("* @generated");
+ _builder.newLine();
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("protected void performDefaultDirectEditorEdit(final org.eclipse.gef.Request theRequest) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// initialize the direct edit manager");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getEditingDomain().runExclusive(new Runnable() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (isActive() && isEditable()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (theRequest.getExtendedData().get(org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("Character initialChar = (Character) theRequest.getExtendedData().get(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("performDirectEdit(initialChar.charValue());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("} else if ((theRequest instanceof org.eclipse.gef.requests.DirectEditRequest) && (getEditText().equals(getLabelText()))) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("org.eclipse.gef.requests.DirectEditRequest editRequest = (org.eclipse.gef.requests.DirectEditRequest) theRequest;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("performDirectEdit(editRequest.getLocation());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("performDirectEdit();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (InterruptedException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("e.printStackTrace();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/.gitignore
deleted file mode 100644
index ed6fc740e88..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/CanonicalUpdate.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java
new file mode 100644
index 00000000000..ab98ad62ffb
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/diagram/update/CanonicalUpdate.java
@@ -0,0 +1,476 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Artem Tikhomirov - refactoring of containerBaseCanonicalMethods.xpt; extraction of API/non-API of CEP templates
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.diagram.update;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Set;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenContainerBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.Common;
+import xpt.diagram.updater.DiagramUpdater;
+import xpt.diagram.updater.LinkDescriptor;
+import xpt.diagram.updater.NodeDescriptor;
+import xpt.diagram.updater.Utils_qvto;
+import xpt.editor.VisualIDRegistry;
+
+@Singleton
+@SuppressWarnings("all")
+public class CanonicalUpdate extends impl.diagram.update.CanonicalUpdate {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private NodeDescriptor nodeDescriptor;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ @Inject
+ private DiagramUpdater xptDiagramUpdater;
+
+ @Inject
+ private LinkDescriptor linkDescriptor;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence getFeaturesToSynchronizeMethod(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Set<GenFeature> _semanticChildrenChildFeatures = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ int _size = _semanticChildrenChildFeatures.size();
+ boolean _equals = (_size == 1);
+ if (_equals) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.emf.ecore.EStructuralFeature getFeatureToSynchronize() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ Set<GenFeature> _semanticChildrenContainmentFeatures = this._utils_qvto.getSemanticChildrenContainmentFeatures(it);
+ GenFeature _head = IterableExtensions.<GenFeature>head(_semanticChildrenContainmentFeatures);
+ CharSequence _MetaFeature = this.xptMetaModel.MetaFeature(_head);
+ _builder.append(_MetaFeature, "\t\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ Set<GenFeature> _semanticChildrenChildFeatures_1 = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ int _size_1 = _semanticChildrenChildFeatures_1.size();
+ boolean _greaterThan = (_size_1 > 1);
+ if (_greaterThan) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected java.util.Set<org.eclipse.emf.ecore.EStructuralFeature> getFeaturesToSynchronize() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (myFeaturesToSynchronize == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("myFeaturesToSynchronize = new java.util.HashSet<org.eclipse.emf.ecore.EStructuralFeature>();");
+ _builder.newLine();
+ {
+ Set<GenFeature> _semanticChildrenContainmentFeatures_1 = this._utils_qvto.getSemanticChildrenContainmentFeatures(it);
+ for(final GenFeature f : _semanticChildrenContainmentFeatures_1) {
+ _builder.append("\t\t\t");
+ CharSequence _addContainmentFeature = this.addContainmentFeature(f);
+ _builder.append(_addContainmentFeature, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return myFeaturesToSynchronize;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getSemanticChildrenListMethod(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected java.util.List<org.eclipse.emf.ecore.EObject> getSemanticChildrenList() {");
+ _builder.newLine();
+ {
+ boolean _hasSemanticChildren = this._utils_qvto.hasSemanticChildren(it);
+ if (_hasSemanticChildren) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View viewObject = (org.eclipse.gmf.runtime.notation.View) getHost().getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.LinkedList<org.eclipse.emf.ecore.EObject> result = new java.util.LinkedList<org.eclipse.emf.ecore.EObject>();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<");
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.nodeDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> childDescriptors = ");
+ CharSequence _semanticChildrenMethodCall = this.xptDiagramUpdater.getSemanticChildrenMethodCall(it);
+ _builder.append(_semanticChildrenMethodCall, "\t");
+ _builder.append("(viewObject);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("for (");
+ GenDiagram _diagram_1 = it.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_1.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.nodeDescriptor.qualifiedClassName(_diagramUpdater_1);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(" d : childDescriptors) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("result.add(d.getModelElement());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return java.util.Collections.EMPTY_LIST;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence refreshConnectionsBody(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap = new ");
+ CharSequence _Domain2Notation_1 = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation_1, "");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("java.util.Collection<");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("> linkDescriptors = collectAllLinks(getDiagram(), domain2NotationMap);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.notation.View> edges = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>();");
+ _builder.newLine();
+ _builder.append("for (Object edge : getDiagram().getEdges())");
+ _builder.newLine();
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (edge instanceof org.eclipse.gmf.runtime.notation.View)");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("edges.add((org.eclipse.gmf.runtime.notation.View) edge);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("java.util.Collection<org.eclipse.gmf.runtime.notation.View> existingLinks = new java.util.LinkedList<org.eclipse.gmf.runtime.notation.View>(edges);");
+ _builder.newLine();
+ _builder.append("for (java.util.Iterator<org.eclipse.gmf.runtime.notation.View> linksIterator = existingLinks.iterator(); linksIterator.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge nextDiagramLink = (org.eclipse.gmf.runtime.notation.Edge) linksIterator.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("int diagramLinkVisualID = ");
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(nextDiagramLink);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (diagramLinkVisualID == -1");
+ {
+ EList<GenLink> _links = it.getLinks();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink gl) {
+ LinkModelFacet _modelFacet = gl.getModelFacet();
+ return Boolean.valueOf(Objects.equal(_modelFacet, null));
+ }
+ };
+ Iterable<GenLink> _filter = IterableExtensions.<GenLink>filter(_links, _function);
+ for(final GenLink link : _filter) {
+ CharSequence _compareLinkVisualID = this.compareLinkVisualID(link);
+ _builder.append(_compareLinkVisualID, "\t");
+ }
+ }
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (nextDiagramLink.getSource() != null && nextDiagramLink.getTarget() != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linksIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("continue;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkObject = nextDiagramLink.getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkSrc = nextDiagramLink.getSource().getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramLinkDst = nextDiagramLink.getTarget().getElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ String _linkDescriptorQualifiedClassName = _diagramUpdater_1.getLinkDescriptorQualifiedClassName();
+ _builder.append(_linkDescriptorQualifiedClassName, "\t");
+ _builder.append("> linkDescriptorsIterator = linkDescriptors.iterator(); linkDescriptorsIterator.hasNext();) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_2 = _editorGen_2.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_2);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(" nextLinkDescriptor = linkDescriptorsIterator.next();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (diagramLinkObject == nextLinkDescriptor.getModelElement() && diagramLinkSrc == nextLinkDescriptor.getSource() && diagramLinkDst == nextLinkDescriptor.getDestination() && diagramLinkVisualID == nextLinkDescriptor.getVisualID()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linksIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("linkDescriptorsIterator.remove();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("deleteViews(existingLinks.iterator());");
+ _builder.newLine();
+ _builder.append("return createConnections(linkDescriptors, domain2NotationMap);");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence collectAllLinksMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection<");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen.getDiagramUpdater();
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("> collectAllLinks(org.eclipse.gmf.runtime.notation.View view, ");
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (!");
+ CharSequence _modelID = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t");
+ _builder.append(".equals(");
+ CharSequence _modelIDMethodCall = this.xptVisualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall, "\t");
+ _builder.append("(view))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return java.util.Collections.emptyList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.LinkedList<");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_1 = _editorGen_1.getDiagramUpdater();
+ CharSequence _qualifiedClassName_1 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_1);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append("> result = new java.util.LinkedList<");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater_2 = _editorGen_2.getDiagramUpdater();
+ CharSequence _qualifiedClassName_2 = this.linkDescriptor.qualifiedClassName(_diagramUpdater_2);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(">();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("switch (");
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(view)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenCommonBase> _allSemanticElements = this._utils_qvto.getAllSemanticElements(it);
+ for(final GenCommonBase se : _allSemanticElements) {
+ _builder.append("\t\t");
+ CharSequence _caseSemanticElement = this.caseSemanticElement(se);
+ _builder.append(_caseSemanticElement, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> children = view.getChildren().iterator(); children.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) children.next(), domain2NotationMap));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> edges = view.getSourceEdges().iterator(); edges.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(collectAllLinks((org.eclipse.gmf.runtime.notation.View) edges.next(), domain2NotationMap));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getEditPartMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.gef.EditPart getEditPart(org.eclipse.emf.ecore.EObject domainModelElement, ");
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = domain2NotationMap.get(domainModelElement);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (view != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return (org.eclipse.gef.EditPart) getHost().getViewer().getEditPartRegistry().get(view);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getHintedEditPartMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected final org.eclipse.gef.EditPart getHintedEditPart(org.eclipse.emf.ecore.EObject domainModelElement, ");
+ CharSequence _Domain2Notation = this.Domain2Notation(it);
+ _builder.append(_Domain2Notation, "");
+ _builder.append(" domain2NotationMap, int hintVisualId) { ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = domain2NotationMap.getHinted(domainModelElement, ");
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(it, "hintVisualId");
+ _builder.append(_typeMethodCall, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (view != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return (org.eclipse.gef.EditPart) getHost().getViewer().getEditPartRegistry().get(view);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/.gitignore
deleted file mode 100644
index c89b20955f1..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/ParserProvider.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java
new file mode 100644
index 00000000000..bfba1a3a55c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/parsers/ParserProvider.java
@@ -0,0 +1,296 @@
+/**
+ * Copyright (c) 2007-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - [235113] alternative parser access
+ * [244419] custom parsers
+ * [138179] expression-backed labels
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.parsers;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import impl.parsers.expression_qvto;
+import java.util.Arrays;
+import metamodel.MetaModel;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParserImplementation;
+import org.eclipse.gmf.codegen.gmfgen.GenParsers;
+import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import parsers.ExpressionLabelParser;
+import parsers.PredefinedParser;
+import plugin.Activator;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.editor.VisualIDRegistry;
+import xpt.expressions.OclTracker_qvto;
+import xpt.expressions.getExpression;
+import xpt.providers.ElementTypes;
+import xpt.providers.ParserUtils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class ParserProvider extends impl.parsers.ParserProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private OclTracker_qvto _oclTracker_qvto;
+
+ @Inject
+ @Extension
+ private ParserUtils_qvto _parserUtils_qvto;
+
+ @Inject
+ @Extension
+ private expression_qvto _expression_qvto;
+
+ @Inject
+ @Extension
+ private ExpressionLabelParser _expressionLabelParser;
+
+ @Inject
+ @Extension
+ private PredefinedParser _predefinedParser;
+
+ @Inject
+ private getExpression xptGetExpression;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private ElementTypes xptElementTypes;
+
+ @Inject
+ private parsers.ParserProvider xptParsers;
+
+ @Inject
+ private Activator xptActivator;
+
+ public CharSequence HintAdapterClass(final GenParsers it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private static class HintAdapter extends org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("private final org.eclipse.gmf.runtime.emf.type.core.IElementType elementType;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public HintAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType type,");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject object, String parserHint) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super(object, parserHint);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence __assert = this._common._assert("type != null");
+ _builder.append(__assert, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("elementType = type;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(@SuppressWarnings(\"rawtypes\") Class adapter) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (org.eclipse.gmf.runtime.emf.type.core.IElementType.class.equals(adapter)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return elementType;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return super.getAdapter(adapter);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _dispatch_parsers(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ for(final GenNodeLabel label : _labels) {
+ {
+ LabelModelFacet _modelFacet = label.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _modelFacet_1 = label.getModelFacet();
+ GenParserImplementation _parser = _modelFacet_1.getParser();
+ LabelModelFacet _modelFacet_2 = label.getModelFacet();
+ CharSequence _dispatch_parser = this.dispatch_parser(_parser, _modelFacet_2, label);
+ _builder.append(_dispatch_parser, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _dispatch_parsers(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ for(final GenLinkLabel label : _labels) {
+ {
+ LabelModelFacet _modelFacet = label.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _modelFacet_1 = label.getModelFacet();
+ GenParserImplementation _parser = _modelFacet_1.getParser();
+ LabelModelFacet _modelFacet_2 = label.getModelFacet();
+ CharSequence _dispatch_parser = this.dispatch_parser(_parser, _modelFacet_2, label);
+ _builder.append(_dispatch_parser, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _dispatch_getParsers(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ for(final GenNodeLabel label : _labels) {
+ {
+ LabelModelFacet _modelFacet = label.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _modelFacet_1 = label.getModelFacet();
+ GenParserImplementation _parser = _modelFacet_1.getParser();
+ CharSequence _doGetParser = this.doGetParser(_parser, label);
+ _builder.append(_doGetParser, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _dispatch_getParsers(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ for(final GenLinkLabel label : _labels) {
+ {
+ LabelModelFacet _modelFacet = label.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _modelFacet_1 = label.getModelFacet();
+ GenParserImplementation _parser = _modelFacet_1.getParser();
+ CharSequence _doGetParser = this.doGetParser(_parser, label);
+ _builder.append(_doGetParser, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _dispatch_getParsers(final GenChildLabelNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _labelModelFacet = it.getLabelModelFacet();
+ GenParserImplementation _parser = _labelModelFacet.getParser();
+ CharSequence _doGetParser = this.doGetParser(_parser, it);
+ _builder.append(_doGetParser, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence dispatch_parsers(final GenLinkEnd it) {
+ if (it instanceof GenChildLabelNode) {
+ return _dispatch_parsers((GenChildLabelNode)it);
+ } else if (it instanceof GenNode) {
+ return _dispatch_parsers((GenNode)it);
+ } else if (it instanceof GenLink) {
+ return _dispatch_parsers((GenLink)it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+
+ public CharSequence dispatch_getParsers(final GenLinkEnd it) {
+ if (it instanceof GenChildLabelNode) {
+ return _dispatch_getParsers((GenChildLabelNode)it);
+ } else if (it instanceof GenNode) {
+ return _dispatch_getParsers((GenNode)it);
+ } else if (it instanceof GenLink) {
+ return _dispatch_getParsers((GenLink)it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/.gitignore
deleted file mode 100644
index 6511bd48b3f..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/StandardPage.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/StandardPage.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/StandardPage.java
new file mode 100644
index 00000000000..a189e623e38
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/impl/preferences/StandardPage.java
@@ -0,0 +1,146 @@
+/**
+ * Copyright (c) 2006, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.impl.preferences;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.gmf.codegen.gmfgen.GenStandardPreferencePage;
+import org.eclipse.gmf.codegen.gmfgen.StandardPreferencePages;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class StandardPage extends impl.preferences.StandardPage {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence Main(final GenStandardPreferencePage it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" ");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "");
+ _builder.append(" ");
+ CharSequence _implementsList = this.implementsList(it);
+ _builder.append(_implementsList, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ CharSequence _className_1 = this.className(it);
+ _builder.append(_className_1, "\t");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("setPreferenceStore(");
+ GenDiagram _diagram_1 = it.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_1.getEditorGen();
+ GenPlugin _plugin = _editorGen_1.getPlugin();
+ String _activatorQualifiedClassName = _plugin.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName, "\t\t");
+ _builder.append(".getInstance().getPreferenceStore());");
+ _builder.newLineIfNotEmpty();
+ {
+ StandardPreferencePages _kind = it.getKind();
+ boolean _equals = Objects.equal(StandardPreferencePages.GENERAL_LITERAL, _kind);
+ if (_equals) {
+ _builder.append("\t\t");
+ _builder.append("setPreferenceKey(");
+ GenDiagram _diagram_2 = it.getDiagram();
+ String _editPartsPackageName = _diagram_2.getEditPartsPackageName();
+ _builder.append(_editPartsPackageName, "\t\t");
+ _builder.append(".");
+ GenDiagram _diagram_3 = it.getDiagram();
+ String _editPartClassName = _diagram_3.getEditPartClassName();
+ _builder.append(_editPartClassName, "\t\t");
+ _builder.append(".MODEL_ID);");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence extendsList(final GenStandardPreferencePage it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ StandardPreferencePages _kind = it.getKind();
+ boolean _equals = Objects.equal(_kind, StandardPreferencePages.GENERAL_LITERAL);
+ if (_equals) {
+ _builder.append("extends org.eclipse.papyrus.infra.gmfdiag.preferences.pages.DiagramPreferencePage");
+ _builder.newLine();
+ } else {
+ StandardPreferencePages _kind_1 = it.getKind();
+ boolean _equals_1 = Objects.equal(_kind_1, StandardPreferencePages.APPEARANCE_LITERAL);
+ if (_equals_1) {
+ _builder.append("extends org.eclipse.gmf.runtime.diagram.ui.preferences.AppearancePreferencePage");
+ _builder.newLine();
+ } else {
+ StandardPreferencePages _kind_2 = it.getKind();
+ boolean _equals_2 = Objects.equal(_kind_2, StandardPreferencePages.CONNECTIONS_LITERAL);
+ if (_equals_2) {
+ _builder.append("extends org.eclipse.gmf.runtime.diagram.ui.preferences.ConnectionsPreferencePage");
+ _builder.newLine();
+ } else {
+ StandardPreferencePages _kind_3 = it.getKind();
+ boolean _equals_3 = Objects.equal(_kind_3, StandardPreferencePages.PRINTING_LITERAL);
+ if (_equals_3) {
+ _builder.append("extends org.eclipse.gmf.runtime.diagram.ui.preferences.PrintingPreferencePage");
+ _builder.newLine();
+ } else {
+ StandardPreferencePages _kind_4 = it.getKind();
+ boolean _equals_4 = Objects.equal(_kind_4, StandardPreferencePages.RULERS_AND_GRID_LITERAL);
+ if (_equals_4) {
+ _builder.append("extends org.eclipse.gmf.runtime.diagram.ui.preferences.RulerGridPreferencePage");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/.gitignore
index 9d2736b6052..2b27b03f7b2 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/.gitignore
@@ -1 +1 @@
-/Facility.java
+/MetaModel.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/Facility.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/Facility.java
new file mode 100644
index 00000000000..27c7367c362
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/Facility.java
@@ -0,0 +1,96 @@
+package aspects.metamodel;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import metamodel.Facility_qvto;
+import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.gmf.codegen.gmfgen.DynamicModelAccess;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class Facility extends metamodel.Facility {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Facility_qvto _facility_qvto;
+
+ public CharSequence getMethod(final GenPackage it, final DynamicModelAccess dma) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment("@throws IllegalStateException if no EPackage with given URI is registered.");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static ");
+ CharSequence _className = this.className(dma);
+ _builder.append(_className, "");
+ _builder.append(" get");
+ String _nameToken = this._facility_qvto.getNameToken(it);
+ _builder.append(_nameToken, "");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (");
+ String _fieldName = this._facility_qvto.fieldName(it);
+ _builder.append(_fieldName, "\t");
+ _builder.append(" == null) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EPackage pkg = getRegistry().getEPackage(\"");
+ EPackage _ecorePackage = it.getEcorePackage();
+ String _nsURI = _ecorePackage.getNsURI();
+ _builder.append(_nsURI, "\t\t");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (pkg == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new IllegalStateException(\"Package ");
+ EPackage _ecorePackage_1 = it.getEcorePackage();
+ String _name = _ecorePackage_1.getName();
+ _builder.append(_name, "\t\t\t");
+ _builder.append("(");
+ EPackage _ecorePackage_2 = it.getEcorePackage();
+ String _nsURI_1 = _ecorePackage_2.getNsURI();
+ _builder.append(_nsURI_1, "\t\t\t");
+ _builder.append(") not found\");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ String _fieldName_1 = this._facility_qvto.fieldName(it);
+ _builder.append(_fieldName_1, "\t\t");
+ _builder.append(" = new ");
+ CharSequence _className_1 = this.className(dma);
+ _builder.append(_className_1, "\t\t");
+ _builder.append("(pkg);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ String _fieldName_2 = this._facility_qvto.fieldName(it);
+ _builder.append(_fieldName_2, "\t\t");
+ _builder.append(".init");
+ String _nameToken_1 = this._facility_qvto.getNameToken(it);
+ _builder.append(_nameToken_1, "\t\t");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return ");
+ String _fieldName_3 = this._facility_qvto.fieldName(it);
+ _builder.append(_fieldName_3, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/MetaModel.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/MetaModel.java
new file mode 100644
index 00000000000..9f8c59dd416
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/metamodel/MetaModel.java
@@ -0,0 +1,32 @@
+package aspects.metamodel;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import metamodel.MetaModel_qvto;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+
+@Singleton
+@SuppressWarnings("all")
+public class MetaModel extends metamodel.MetaModel {
+ @Inject
+ @Extension
+ private MetaModel_qvto _metaModel_qvto;
+
+ public CharSequence DeclareAndAssign2(final GenClass it, final String assignee, final String src, final GenClass srcMetaClass, final GenFeature srcFeature, final String srcExt, final boolean needCast) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _qualifiedInterfaceName = this._metaModel_qvto.getQualifiedInterfaceName(it);
+ _builder.append(_qualifiedInterfaceName, "");
+ _builder.append(" ");
+ _builder.append(assignee, "");
+ _builder.append(" = ");
+ CharSequence _featureValue = this.getFeatureValue(srcFeature, src, srcMetaClass);
+ _builder.append(_featureValue, "");
+ _builder.append(".");
+ _builder.append(srcExt, "");
+ _builder.append(";");
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/.gitignore
index 076456065d3..025e1ca576e 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/.gitignore
@@ -1,2 +1 @@
-/Common.java
-/QualifiedClassNameProvider.java
+/CodeStyle.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/CodeStyle.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/CodeStyle.java
new file mode 100644
index 00000000000..2b34b5de8ff
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/CodeStyle.java
@@ -0,0 +1,16 @@
+package aspects.xpt;
+
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class CodeStyle extends xpt.CodeStyle {
+ public CharSequence overrideI(final GenCommonBase xptSelf) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("@Override");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/Common.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/Common.java
new file mode 100644
index 00000000000..994402ea8b4
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/Common.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2006-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt;
+
+import com.google.common.base.Objects;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class Common extends xpt.Common {
+ public CharSequence copyright(final GenEditorGenerator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ String _copyrightText = it.getCopyrightText();
+ boolean _notEquals = (!Objects.equal(_copyrightText, null));
+ if (_notEquals) {
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("* ");
+ String _copyrightText_1 = it.getCopyrightText();
+ String _replaceAll = _copyrightText_1.replaceAll("\n", "\n * ");
+ _builder.append(_replaceAll, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("*/");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/QualifiedClassNameProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/QualifiedClassNameProvider.java
new file mode 100644
index 00000000000..ff97a9e8d24
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/QualifiedClassNameProvider.java
@@ -0,0 +1,55 @@
+package aspects.xpt;
+
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class QualifiedClassNameProvider extends xpt.QualifiedClassNameProvider {
+ protected CharSequence _getItemSemanticEditPolicyQualifiedClassName(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCompartmentSemanticEditPolicy");
+ return _builder;
+ }
+
+ protected CharSequence _getItemSemanticEditPolicyQualifiedClassName(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCompartmentSemanticEditPolicy");
+ return _builder;
+ }
+
+ protected CharSequence _getItemSemanticEditPolicyQualifiedClassName(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultSemanticEditPolicy");
+ return _builder;
+ }
+
+ protected CharSequence _getItemSemanticEditPolicyQualifiedClassName(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultSemanticEditPolicy");
+ return _builder;
+ }
+
+ public CharSequence getItemSemanticEditPolicyQualifiedClassName(final GenCommonBase it) {
+ if (it instanceof GenCompartment) {
+ return _getItemSemanticEditPolicyQualifiedClassName((GenCompartment)it);
+ } else if (it instanceof GenNode) {
+ return _getItemSemanticEditPolicyQualifiedClassName((GenNode)it);
+ } else if (it instanceof GenDiagram) {
+ return _getItemSemanticEditPolicyQualifiedClassName((GenDiagram)it);
+ } else if (it instanceof GenLink) {
+ return _getItemSemanticEditPolicyQualifiedClassName((GenLink)it);
+ } else if (it != null) {
+ return _getItemSemanticEditPolicyQualifiedClassName(it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/.gitignore
index 5b0df3ff386..6a58e4105b2 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/.gitignore
@@ -1,2 +1 @@
-/CreateLinkUtils.java
-/CreateNodeCommand.java
+/ReorientLinkUtils.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateLinkUtils.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateLinkUtils.java
new file mode 100644
index 00000000000..c8c21995b28
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateLinkUtils.java
@@ -0,0 +1,218 @@
+/**
+ * Copyright (c) 2007-2012 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.commands;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.diagram.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class CreateLinkUtils extends xpt.diagram.commands.CreateLinkUtils {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ /**
+ * Fields of command that creates link.
+ */
+ protected CharSequence _fields(final LinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected final org.eclipse.emf.ecore.EObject source;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected final org.eclipse.emf.ecore.EObject target;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _fields(final TypeLinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected final org.eclipse.emf.ecore.EObject source;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected final org.eclipse.emf.ecore.EObject target;");
+ _builder.newLine();
+ {
+ boolean _hasContainerOtherThanSource = this._utils_qvto.hasContainerOtherThanSource(it);
+ if (_hasContainerOtherThanSource) {
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected ");
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ GenClass _genClass = _containmentMetaFeature.getGenClass();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_genClass);
+ _builder.append(_QualifiedClassName, "");
+ _builder.append(" container;");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _containerAccessor(final TypeLinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _hasContainerOtherThanSource = this._utils_qvto.hasContainerOtherThanSource(it);
+ if (_hasContainerOtherThanSource) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ GenClass _genClass = _containmentMetaFeature.getGenClass();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_genClass);
+ _builder.append(_QualifiedClassName, "\t");
+ _builder.append(" getContainer() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return container;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment(
+ ("Default approach is to traverse ancestors of the source to find instance of container.\n" + "Modify with appropriate logic."));
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected ");
+ GenFeature _containmentMetaFeature_1 = it.getContainmentMetaFeature();
+ GenClass _genClass_1 = _containmentMetaFeature_1.getGenClass();
+ CharSequence _QualifiedClassName_1 = this.xptMetaModel.QualifiedClassName(_genClass_1);
+ _builder.append(_QualifiedClassName_1, "\t");
+ _builder.append(" deduceContainer(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EObject target) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("// Find container element for the new link.");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Climb up by containment hierarchy starting from the source");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// and return the first element that is instance of the container class.");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (org.eclipse.emf.ecore.EObject element = source; element != null; element = element.eContainer()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (");
+ GenFeature _containmentMetaFeature_2 = it.getContainmentMetaFeature();
+ GenClass _genClass_2 = _containmentMetaFeature_2.getGenClass();
+ CharSequence _IsInstance = this.xptMetaModel.IsInstance(_genClass_2, "element");
+ _builder.append(_IsInstance, "\t\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return ");
+ GenFeature _containmentMetaFeature_3 = it.getContainmentMetaFeature();
+ GenClass _genClass_3 = _containmentMetaFeature_3.getGenClass();
+ CharSequence _CastEObject = this.xptMetaModel.CastEObject(_genClass_3, "element");
+ _builder.append(_CastEObject, "\t\t\t\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence fields(final LinkModelFacet it) {
+ if (it instanceof TypeLinkModelFacet) {
+ return _fields((TypeLinkModelFacet)it);
+ } else if (it != null) {
+ return _fields(it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+
+ public CharSequence containerAccessor(final LinkModelFacet it) {
+ if (it instanceof TypeLinkModelFacet) {
+ return _containerAccessor((TypeLinkModelFacet)it);
+ } else if (it != null) {
+ return _containerAccessor(it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateNodeCommand.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateNodeCommand.java
new file mode 100644
index 00000000000..ffd713507f9
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/CreateNodeCommand.java
@@ -0,0 +1,491 @@
+/**
+ * Copyright (c) 2007, 2010 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.commands;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.OclMigrationProblems_qvto;
+import xpt.diagram.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class CreateNodeCommand extends xpt.diagram.commands.CreateNodeCommand {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private OclMigrationProblems_qvto _oclMigrationProblems_qvto;
+
+ @Inject
+ @Extension
+ private MetaModel _metaModel;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ public CharSequence CreateNodeCommand(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" extends org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ boolean _isPhantomElement = _modelFacet.isPhantomElement();
+ boolean _not = (!_isPhantomElement);
+ if (_not) {
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.gmf.runtime.notation.Diagram diagram = null;");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence __constructor = this._constructor(it);
+ _builder.append(__constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _elementToEdit = this.getElementToEdit(it);
+ _builder.append(_elementToEdit, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _canExecuteMethod = this.canExecuteMethod(it);
+ _builder.append(_canExecuteMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _doExecuteWithResultMethod = this.doExecuteWithResultMethod(it);
+ _builder.append(_doExecuteWithResultMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _doConfigureMethod = this.doConfigureMethod(it);
+ _builder.append(_doConfigureMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.append("\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence _constructor(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append("(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest req, org.eclipse.gmf.runtime.notation.Diagram diagram) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("super(req.getLabel(), null, req);");
+ _builder.newLine();
+ {
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ boolean _isPhantomElement = _modelFacet.isPhantomElement();
+ boolean _not = (!_isPhantomElement);
+ if (_not) {
+ _builder.append("\t");
+ _builder.append("this.diagram = diagram;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence doExecuteWithResultMethod(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append(" \t\t\t\t");
+ _builder.newLine();
+ {
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ GenClass _metaClass = _modelFacet.getMetaClass();
+ EClass _ecoreClass = _metaClass.getEcoreClass();
+ boolean _isAbstract = _ecoreClass.isAbstract();
+ boolean _notEquals = (_isAbstract != true);
+ if (_notEquals) {
+ {
+ TypeModelFacet _modelFacet_1 = it.getModelFacet();
+ boolean _isPhantomElement = _modelFacet_1.isPhantomElement();
+ if (_isPhantomElement) {
+ TypeModelFacet _modelFacet_2 = it.getModelFacet();
+ CharSequence _phantomElementCreation = this.phantomElementCreation(_modelFacet_2, it, "newElement");
+ _builder.append(_phantomElementCreation, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ TypeModelFacet _modelFacet_3 = it.getModelFacet();
+ CharSequence _normalElementCreation = this.normalElementCreation(_modelFacet_3, it, "newElement");
+ _builder.append(_normalElementCreation, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ TypeModelFacet _modelFacet_4 = it.getModelFacet();
+ CharSequence _initialize = this.initialize(_modelFacet_4, it, "newElement");
+ _builder.append(_initialize, "");
+ _builder.newLineIfNotEmpty();
+ {
+ if (true) {
+ CharSequence _extraLineBreak_1 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("doConfigure(newElement, monitor, info);");
+ _builder.newLine();
+ CharSequence _extraLineBreak_2 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_2, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("((org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest) getRequest()).setNewElement(");
+ TypeModelFacet _modelFacet_5 = it.getModelFacet();
+ GenClass _metaClass_1 = _modelFacet_5.getMetaClass();
+ CharSequence _DowncastToEObject = this.xptMetaModel.DowncastToEObject(_metaClass_1, "newElement");
+ _builder.append(_DowncastToEObject, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult(newElement);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("throw new UnsupportedOperationException(\"Unimplemented operation (abstract domain element).\");");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence canExecute_Normal(final TypeModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ boolean _notEquals = (!Objects.equal(_containmentMetaFeature, null));
+ if (_notEquals) {
+ {
+ GenFeature _containmentMetaFeature_1 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature = _containmentMetaFeature_1.getEcoreFeature();
+ boolean _notEquals_1 = (!Objects.equal(_ecoreFeature, null));
+ if (_notEquals_1) {
+ {
+ boolean _or = false;
+ GenFeature _containmentMetaFeature_2 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature_1 = _containmentMetaFeature_2.getEcoreFeature();
+ boolean _isUnbounded = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_1);
+ boolean _not = (!_isUnbounded);
+ if (_not) {
+ _or = true;
+ } else {
+ boolean _and = false;
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ GenFeature _containmentMetaFeature_3 = it.getContainmentMetaFeature();
+ boolean _notEquals_2 = (!Objects.equal(_childMetaFeature, _containmentMetaFeature_3));
+ if (!_notEquals_2) {
+ _and = false;
+ } else {
+ GenFeature _childMetaFeature_1 = it.getChildMetaFeature();
+ EStructuralFeature _ecoreFeature_2 = _childMetaFeature_1.getEcoreFeature();
+ boolean _isUnbounded_1 = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_2);
+ boolean _not_1 = (!_isUnbounded_1);
+ _and = _not_1;
+ }
+ _or = _and;
+ }
+ if (_or) {
+ {
+ GenFeature _containmentMetaFeature_4 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature_3 = _containmentMetaFeature_4.getEcoreFeature();
+ boolean _isUnbounded_2 = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_3);
+ boolean _not_2 = (!_isUnbounded_2);
+ if (_not_2) {
+ GenFeature _containmentMetaFeature_5 = it.getContainmentMetaFeature();
+ GenClass _genClass = _containmentMetaFeature_5.getGenClass();
+ CharSequence _DeclareAndAssign = this._metaModel.DeclareAndAssign(_genClass, "container", "getElementToEdit()");
+ _builder.append(_DeclareAndAssign, "");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _containmentMetaFeature_6 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature_4 = _containmentMetaFeature_6.getEcoreFeature();
+ boolean _isSingleValued = this._oclMigrationProblems_qvto.isSingleValued(_ecoreFeature_4);
+ if (_isSingleValued) {
+ _builder.append("\t\t");
+ _builder.append("if (");
+ GenFeature _containmentMetaFeature_7 = it.getContainmentMetaFeature();
+ GenFeature _containmentMetaFeature_8 = it.getContainmentMetaFeature();
+ GenClass _genClass_1 = _containmentMetaFeature_8.getGenClass();
+ CharSequence _featureValue = this._metaModel.getFeatureValue(_containmentMetaFeature_7, "container", _genClass_1);
+ _builder.append(_featureValue, "\t\t");
+ _builder.append(" != null) {");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("\t\t");
+ _builder.append("if (");
+ GenFeature _containmentMetaFeature_9 = it.getContainmentMetaFeature();
+ GenFeature _containmentMetaFeature_10 = it.getContainmentMetaFeature();
+ GenClass _genClass_2 = _containmentMetaFeature_10.getGenClass();
+ CharSequence _featureValue_1 = this._metaModel.getFeatureValue(_containmentMetaFeature_9, "container", _genClass_2);
+ _builder.append(_featureValue_1, "\t\t");
+ _builder.append(".size() >= ");
+ GenFeature _containmentMetaFeature_11 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature_5 = _containmentMetaFeature_11.getEcoreFeature();
+ int _upperBound = _ecoreFeature_5.getUpperBound();
+ _builder.append(_upperBound, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ {
+ boolean _and_1 = false;
+ GenFeature _childMetaFeature_2 = it.getChildMetaFeature();
+ GenFeature _containmentMetaFeature_12 = it.getContainmentMetaFeature();
+ boolean _notEquals_3 = (!Objects.equal(_childMetaFeature_2, _containmentMetaFeature_12));
+ if (!_notEquals_3) {
+ _and_1 = false;
+ } else {
+ GenFeature _childMetaFeature_3 = it.getChildMetaFeature();
+ EStructuralFeature _ecoreFeature_6 = _childMetaFeature_3.getEcoreFeature();
+ boolean _isUnbounded_3 = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_6);
+ boolean _not_3 = (!_isUnbounded_3);
+ _and_1 = _not_3;
+ }
+ if (_and_1) {
+ {
+ GenFeature _childMetaFeature_4 = it.getChildMetaFeature();
+ EStructuralFeature _ecoreFeature_7 = _childMetaFeature_4.getEcoreFeature();
+ boolean _isSingleValued_1 = this._oclMigrationProblems_qvto.isSingleValued(_ecoreFeature_7);
+ if (_isSingleValued_1) {
+ _builder.append("\t\t");
+ _builder.append("if (");
+ GenFeature _childMetaFeature_5 = it.getChildMetaFeature();
+ GenFeature _containmentMetaFeature_13 = it.getContainmentMetaFeature();
+ GenClass _genClass_3 = _containmentMetaFeature_13.getGenClass();
+ CharSequence _featureValue_2 = this._metaModel.getFeatureValue(_childMetaFeature_5, "container", _genClass_3);
+ _builder.append(_featureValue_2, "\t\t");
+ _builder.append(" != null) {");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("\t\t");
+ _builder.append("if (");
+ GenFeature _childMetaFeature_6 = it.getChildMetaFeature();
+ GenFeature _containmentMetaFeature_14 = it.getContainmentMetaFeature();
+ GenClass _genClass_4 = _containmentMetaFeature_14.getGenClass();
+ CharSequence _featureValue_3 = this._metaModel.getFeatureValue(_childMetaFeature_6, "container", _genClass_4);
+ _builder.append(_featureValue_3, "\t\t");
+ _builder.append(".size() >= ");
+ GenFeature _childMetaFeature_7 = it.getChildMetaFeature();
+ EStructuralFeature _ecoreFeature_8 = _childMetaFeature_7.getEcoreFeature();
+ int _upperBound_1 = _ecoreFeature_8.getUpperBound();
+ _builder.append(_upperBound_1, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ _builder.newLine();
+ _builder.append("org.eclipse.emf.ecore.EObject target = getElementToEdit();");
+ _builder.newLine();
+ _builder.append("org.eclipse.papyrus.infra.viewpoints.policy.ModelAddData data = org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker.getCurrent().getChildAddData(diagram, target.eClass(), ");
+ GenClass _metaClass = it.getMetaClass();
+ CharSequence _MetaClass = this._metaModel.MetaClass(_metaClass);
+ _builder.append(_MetaClass, "");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("return data.isPermitted();");
+ _builder.newLine();
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence normalElementCreation(final TypeModelFacet it, final GenNode node, final String varName) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenClass _metaClass = it.getMetaClass();
+ CharSequence _NewInstance = this.xptMetaModel.NewInstance(_metaClass, varName);
+ _builder.append(_NewInstance, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("org.eclipse.emf.ecore.EObject target = getElementToEdit();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.papyrus.infra.viewpoints.policy.ModelAddData data = org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker.getCurrent().getChildAddData(diagram, target, ");
+ _builder.append(varName, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (data.isPermitted()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (data.isPathDefined()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (!data.execute(target, ");
+ _builder.append(varName, "\t\t\t\t");
+ _builder.append(")) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newErrorCommandResult(\"Failed to follow the policy-specified for the insertion of the new element\");");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ boolean _notEquals = (!Objects.equal(_containmentMetaFeature, null));
+ if (_notEquals) {
+ GenFeature _containmentMetaFeature_1 = it.getContainmentMetaFeature();
+ GenClass _genClass = _containmentMetaFeature_1.getGenClass();
+ CharSequence _DeclareAndAssign = this.xptMetaModel.DeclareAndAssign(_genClass, "qualifiedTarget", "target");
+ _builder.append(_DeclareAndAssign, "");
+ _builder.newLineIfNotEmpty();
+ GenFeature _containmentMetaFeature_2 = it.getContainmentMetaFeature();
+ GenFeature _containmentMetaFeature_3 = it.getContainmentMetaFeature();
+ GenClass _genClass_1 = _containmentMetaFeature_3.getGenClass();
+ CharSequence _modifyFeature = this.xptMetaModel.modifyFeature(_containmentMetaFeature_2, "qualifiedTarget", _genClass_1, varName);
+ _builder.append(_modifyFeature, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("//");
+ _builder.newLine();
+ _builder.append("// FIXME no containment feature found in the genmodel, toolsmith need to manually write code here to add ");
+ _builder.append(varName, "");
+ _builder.append(" to a parent");
+ _builder.newLineIfNotEmpty();
+ _builder.append("//");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newErrorCommandResult(\"The active policy restricts the addition of this element\");");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ {
+ boolean _hasExplicitChildFeature = this._utils_qvto.hasExplicitChildFeature(it);
+ if (_hasExplicitChildFeature) {
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ GenClass _genClass_2 = _childMetaFeature.getGenClass();
+ CharSequence _DeclareAndAssign_1 = this.xptMetaModel.DeclareAndAssign(_genClass_2, "childHolder", "getElementToEdit()");
+ _builder.append(_DeclareAndAssign_1, "");
+ _builder.newLineIfNotEmpty();
+ GenFeature _childMetaFeature_1 = it.getChildMetaFeature();
+ GenFeature _childMetaFeature_2 = it.getChildMetaFeature();
+ GenClass _genClass_3 = _childMetaFeature_2.getGenClass();
+ CharSequence _modifyFeature_1 = this.xptMetaModel.modifyFeature(_childMetaFeature_1, "childHolder", _genClass_3, varName);
+ _builder.append(_modifyFeature_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/ReorientLinkUtils.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/ReorientLinkUtils.java
new file mode 100644
index 00000000000..76e12c3efc1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/commands/ReorientLinkUtils.java
@@ -0,0 +1,153 @@
+package aspects.xpt.diagram.commands;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ReorientLinkUtils extends xpt.diagram.commands.ReorientLinkUtils {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence canReorient(final LinkModelFacet it, final GenLink link) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public boolean canExecute() {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _checkLinkValidity = this.checkLinkValidity(it);
+ _builder.append(_checkLinkValidity, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_SOURCE) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return canReorientSource();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_TARGET) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return canReorientTarget();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean canReorientSource() {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _checkSourceRequestValidity = this.checkSourceRequestValidity(it, link);
+ _builder.append(_checkSourceRequestValidity, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean canReorientTarget() {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _checkTargetRequestValidity = this.checkTargetRequestValidity(it, link);
+ _builder.append(_checkTargetRequestValidity, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence reorient(final LinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (!canExecute()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("throw new org.eclipse.core.commands.ExecutionException(\"Invalid arguments in reorient link command\"); ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_SOURCE) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return reorientSource();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_TARGET) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return reorientTarget();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("throw new IllegalStateException();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult reorientSource() throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _reorientSource = this.reorientSource(it);
+ _builder.append(_reorientSource, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult reorientTarget() throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _reorientTarget = this.reorientTarget(it);
+ _builder.append(_reorientTarget, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/.gitignore
deleted file mode 100644
index 03f041845c9..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/EditHelper.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/EditHelper.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/EditHelper.java
new file mode 100644
index 00000000000..dfa999d2a84
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/edithelpers/EditHelper.java
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2006-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.edithelpers;
+
+import com.google.inject.Inject;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.MetamodelType;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import utils.EditHelperUtils_qvto;
+import xpt.Common;
+
+@SuppressWarnings("all")
+public class EditHelper extends xpt.diagram.edithelpers.EditHelper {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private EditHelperUtils_qvto _editHelperUtils_qvto;
+
+ public CharSequence EditHelper(final MetamodelType it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenCommonBase _diagramElement = it.getDiagramElement();
+ GenDiagram _diagram = _diagramElement.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ String _editHelperClassName = it.getEditHelperClassName();
+ _builder.append(_editHelperClassName, "");
+ _builder.append(" extends ");
+ GenCommonBase _diagramElement_1 = it.getDiagramElement();
+ GenDiagram _diagram_1 = _diagramElement_1.getDiagram();
+ String _baseEditHelperFullName = this._editHelperUtils_qvto.getBaseEditHelperFullName(_diagram_1);
+ _builder.append(_baseEditHelperFullName, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/.gitignore
deleted file mode 100644
index 4c1df60d4fc..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Common.java
-/EditPartFactory.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/Common.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/Common.java
new file mode 100644
index 00000000000..5308199cff1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/Common.java
@@ -0,0 +1,72 @@
+/**
+ * Copyright (c) 2006, 2010 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Patrick Tessier (CEA LIST)
+ */
+package aspects.xpt.diagram.editparts;
+
+import aspects.xpt.QualifiedClassNameProvider;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenContainerBase;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class Common extends xpt.diagram.editparts.Common {
+ @Inject
+ private QualifiedClassNameProvider qualifiedClassNameProvider;
+
+ public CharSequence installCanonicalEditPolicy(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _needsCanonicalEditPolicy = it.needsCanonicalEditPolicy();
+ if (_needsCanonicalEditPolicy) {
+ _builder.append("\t\t\t\t");
+ _builder.append("//in Papyrus diagrams are not strongly synchronised");
+ _builder.newLine();
+ _builder.append("//installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CANONICAL_ROLE, new ");
+ String _canonicalEditPolicyQualifiedClassName = it.getCanonicalEditPolicyQualifiedClassName();
+ _builder.append(_canonicalEditPolicyQualifiedClassName, "");
+ _builder.append("());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence creationEditPolicyNewInstance(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.DefaultCreationEditPolicy()");
+ return _builder;
+ }
+
+ public CharSequence installSemanticEditPolicy(final GenCommonBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _isSansDomain = it.isSansDomain();
+ if (_isSansDomain) {
+ _builder.append("removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.SEMANTIC_ROLE);");
+ _builder.newLine();
+ } else {
+ _builder.append("installEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.SEMANTIC_ROLE, new ");
+ CharSequence _itemSemanticEditPolicyQualifiedClassName = this.qualifiedClassNameProvider.getItemSemanticEditPolicyQualifiedClassName(it);
+ _builder.append(_itemSemanticEditPolicyQualifiedClassName, "");
+ _builder.append("());");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/EditPartFactory.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/EditPartFactory.java
new file mode 100644
index 00000000000..0832764b243
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editparts/EditPartFactory.java
@@ -0,0 +1,162 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editparts;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class EditPartFactory extends xpt.diagram.editparts.EditPartFactory {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence getTextCellEditorLocator(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static org.eclipse.gef.tools.CellEditorLocator getTextCellEditorLocator(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.ITextAwareEditPart source) {");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("if (source.getFigure() instanceof org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure){");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new MultilineCellEditorLocator(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("(org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure) source.getFigure());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t ");
+ _builder.append("else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t ");
+ _builder.append("return org.eclipse.gmf.tooling.runtime.directedit.locator.CellEditorLocatorAccess.INSTANCE.getTextCellEditorLocator(source);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("static private class MultilineCellEditorLocator implements org.eclipse.gef.tools.CellEditorLocator {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment_1 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure multilineEditableFigure;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment_2 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public MultilineCellEditorLocator(org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure figure) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("this.multilineEditableFigure = figure;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment_3 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.papyrus.uml.diagram.common.figure.node.IMultilineEditableFigure getMultilineEditableFigure() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return multilineEditableFigure;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment_4 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void relocate(org.eclipse.jface.viewers.CellEditor celleditor) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.widgets.Text text = (org.eclipse.swt.widgets.Text) celleditor.getControl();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.draw2d.geometry.Rectangle rect = getMultilineEditableFigure().getBounds().getCopy();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("rect.x=getMultilineEditableFigure().getEditionLocation().x;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("rect.y=getMultilineEditableFigure().getEditionLocation().y;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getMultilineEditableFigure().translateToAbsolute(rect);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (getMultilineEditableFigure().getText().length() > 0) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("rect.setSize(new org.eclipse.draw2d.geometry.Dimension(text.computeSize(rect.width,");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.swt.SWT.DEFAULT)));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (!rect.equals(new org.eclipse.draw2d.geometry.Rectangle(text.getBounds()))) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("text.setBounds(rect.x, rect.y, rect.width, rect.height);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/.gitignore
index 329ccbbba6f..e93051a67d7 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/.gitignore
@@ -1,10 +1 @@
-/BaseItemSemanticEditPolicy.java
-/CompartmentItemSemanticEditPolicy.java
-/DiagramItemSemanticEditPolicy.java
-/LinkItemSemanticEditPolicy.java
-/NodeItemSemanticEditPolicy.java
-/childContainerCreateCommand.java
-/linkCommands.java
-/TextNonResizableEditPolicy.java
-/Utils_qvto.java
-/OpenDiagram.java
+/TextSelectionEditPolicy.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..83407a31f13
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.java
@@ -0,0 +1,1161 @@
+/**
+ * Copyright (c) 2007, 2010 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenConstraint;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderBase;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkConstraints;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import plugin.Activator;
+import xpt.Common;
+import xpt.OclMigrationProblems_qvto;
+import xpt.diagram.editpolicies.Utils_qvto;
+import xpt.editor.VisualIDRegistry;
+import xpt.providers.ElementTypes;
+
+@Singleton
+@SuppressWarnings("all")
+public class BaseItemSemanticEditPolicy extends xpt.diagram.editpolicies.BaseItemSemanticEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Activator xptPluginActivator;
+
+ @Inject
+ @Extension
+ private VisualIDRegistry _visualIDRegistry;
+
+ @Inject
+ private ElementTypes xptElementTypes;
+
+ @Inject
+ @Extension
+ private OclMigrationProblems_qvto _oclMigrationProblems_qvto;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ public CharSequence BaseItemSemanticEditPolicy(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" extends org.eclipse.gmf.runtime.diagram.ui.editpolicies.SemanticEditPolicy {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _attributes = this.attributes(it);
+ _builder.append(_attributes, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _constructor = this.constructor(it);
+ _builder.append(_constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment(
+ ((((((("Extended request data key to hold editpart visual id.\n" + "Add visual id of edited editpart to extended data of the request\n") + "so command switch can decide what kind of diagram element is being edited.\n") + "It is done in those cases when it\'s not possible to deduce diagram\n") + "element kind from domain element.\n") + "Add the reoriented view to the request extended data so that the view\n ") + "currently edited can be distinguished from other views of the same element\n ") +
+ "and these latter possibly removed if they become inconsistent after reconnect\n"));
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"unchecked\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.gef.commands.Command getCommand(org.eclipse.gef.Request request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (request instanceof org.eclipse.gef.requests.ReconnectRequest) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Object view = ((org.eclipse.gef.requests.ReconnectRequest) request).getConnectionEditPart().getModel();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (view instanceof org.eclipse.gmf.runtime.notation.View) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("Integer id = new Integer(");
+ CharSequence _visualIDMethodCall = this._visualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t\t\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.notation.View) view));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("request.getExtendedData().put(VISUAL_ID_KEY, id);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("request.getExtendedData().put(GRAPHICAL_RECONNECTED_EDGE, view);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.getCommand(request);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment("Returns visual id from request parameters.");
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected int getVisualID(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest request) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("Object id = request.getParameter(VISUAL_ID_KEY);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return id instanceof Integer ? ((Integer) id).intValue() : -1;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _semanticPart = this.semanticPart(it);
+ _builder.append(_semanticPart, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment("Returns editing domain from the host edit part.");
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ((org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart) getHost()).getEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _addDestroyShortcutsCommand = this.addDestroyShortcutsCommand(it);
+ _builder.append(_addDestroyShortcutsCommand, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ EList<GenLink> _links = it.getLinks();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink link) {
+ boolean _isSansDomain = link.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenLink>exists(_links, _function);
+ if (_exists) {
+ CharSequence _linkConstraints = this.linkConstraints(it);
+ _builder.append(_linkConstraints, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addDestroyShortcutsCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment("Clean all shortcuts to the host element from the same diagram");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void addDestroyShortcutsCommand(org.eclipse.gmf.runtime.common.core.command.ICompositeCommand cmd, org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence __assert = this._common._assert("view.getEAnnotation(\"Shortcut\") == null");
+ _builder.append(__assert, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> it = view.getDiagram().getChildren().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (nextView.getEAnnotation(\"Shortcut\") == null || !nextView.isSetElement() || nextView.getElement() != view.getElement()) { ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("continue;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), nextView));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence attributes(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment("Extended request data key to hold editpart visual id.");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final String VISUAL_ID_KEY = \"visual_id\"; ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment("Extended request data key to hold the edge view during a reconnect request.");
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final String GRAPHICAL_RECONNECTED_EDGE = \"graphical_edge\"; ");
+ CharSequence _nonNLS_1 = this._common.nonNLS();
+ _builder.append(_nonNLS_1, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private final org.eclipse.gmf.runtime.emf.type.core.IElementType myElementType;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence semanticPart(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _semanticCommand = this.getSemanticCommand(it);
+ _builder.append(_semanticCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _addDeleteViewCommand = this.addDeleteViewCommand(it);
+ _builder.append(_addDeleteViewCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _editHelperCommand = this.getEditHelperCommand(it);
+ _builder.append(_editHelperCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _contextElementType = this.getContextElementType(it);
+ _builder.append(_contextElementType, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _semanticCommandSwitch = this.getSemanticCommandSwitch(it);
+ _builder.append(_semanticCommandSwitch, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _configureCommand = this.getConfigureCommand(it);
+ _builder.append(_configureCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _createRelationshipCommand = this.getCreateRelationshipCommand(it);
+ _builder.append(_createRelationshipCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _createCommand = this.getCreateCommand(it);
+ _builder.append(_createCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("// RS: add code for extended types");
+ _builder.newLine();
+ CharSequence _createExtendedTypeCommand = this.getCreateExtendedTypeCommand(it);
+ _builder.append(_createExtendedTypeCommand, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _extendedStartCreateRelationshipCommand = this.getExtendedStartCreateRelationshipCommand(it);
+ _builder.append(_extendedStartCreateRelationshipCommand, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _extendedCompleteCreateRelationshipCommand = this.getExtendedCompleteCreateRelationshipCommand(it);
+ _builder.append(_extendedCompleteCreateRelationshipCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("// RS: End of add code for extended types");
+ _builder.newLine();
+ CharSequence _createSemanticServiceEditCommand = this.getCreateSemanticServiceEditCommand(it);
+ _builder.append(_createSemanticServiceEditCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setCommand = this.getSetCommand(it);
+ _builder.append(_setCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _editContextCommand = this.getEditContextCommand(it);
+ _builder.append(_editContextCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _destroyElementCommand = this.getDestroyElementCommand(it);
+ _builder.append(_destroyElementCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _destroyReferenceCommand = this.getDestroyReferenceCommand(it);
+ _builder.append(_destroyReferenceCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _duplicateCommand = this.getDuplicateCommand(it);
+ _builder.append(_duplicateCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _moveCommand = this.getMoveCommand(it);
+ _builder.append(_moveCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _reorientReferenceRelationshipCommand = this.getReorientReferenceRelationshipCommand(it);
+ _builder.append(_reorientReferenceRelationshipCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _reorientRelationshipCommand = this.getReorientRelationshipCommand(it);
+ _builder.append(_reorientRelationshipCommand, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _gEFWrapper = this.getGEFWrapper(it);
+ _builder.append(_gEFWrapper, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence getContextElementType(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.emf.type.core.IElementType getContextElementType(org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest request) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType requestContextElementType = ");
+ CharSequence _qualifiedClassName = this.xptElementTypes.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(".getElementType(getVisualID(request));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return requestContextElementType != null ? requestContextElementType : myElementType;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getCreateRelationshipCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateRelationshipCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) {");
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents, GenerateUsingElementTypeCreationCommand.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _lessThan = (_size < 1);
+ if (_lessThan) {
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ }
+ }
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter_1 = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents_1, GenerateUsingElementTypeCreationCommand.class);
+ int _size_1 = IteratorExtensions.size(_filter_1);
+ boolean _greaterThan = (_size_1 > 0);
+ if (_greaterThan) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService commandService = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(((org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart)getHost()).resolveSemanticElement());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(req.getElementType() != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("commandService = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(req.getElementType());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(commandService == null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand semanticCommand = commandService.getEditCommand(req);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if((semanticCommand != null) && (semanticCommand.canExecute())) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(semanticCommand);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getCreateCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (requestElementType instanceof org.eclipse.gmf.runtime.emf.type.core.IElementType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService commandProvider = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(req.getContainer());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (commandProvider != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand command = commandProvider.getEditCommand(req);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (command != null && command.canExecute()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return new org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy(command);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getCreateExtendedTypeCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("protected org.eclipse.gef.commands.Command getExtendedTypeCreationCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest request, org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(request.getContainer());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(provider == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Retrieve create command from the Element Edit service");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand createGMFCommand = provider.getEditCommand(request);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return getGEFWrapper(createGMFCommand);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getExtendedStartCreateRelationshipCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("protected org.eclipse.gef.commands.Command getExtendedStartCreateRelationshipCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest request, org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(requestElementType);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(provider == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// Retrieve create command from the Element Edit service");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand createGMFCommand = provider.getEditCommand(request);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(createGMFCommand);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getExtendedCompleteCreateRelationshipCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("protected org.eclipse.gef.commands.Command getExtendedCompleteCreateRelationshipCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest request, org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(requestElementType);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(provider == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// Retrieve create command from the Element Edit service");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand createGMFCommand = provider.getEditCommand(request);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(createGMFCommand);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getMoveCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getMoveCommand(org.eclipse.gmf.runtime.emf.type.core.requests.MoveRequest req) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject targetCEObject = req.getTargetContainer();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(targetCEObject != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(targetCEObject);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if(provider != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand moveCommand = provider.getEditCommand(req);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if(moveCommand != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return new org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy(moveCommand);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return getGEFWrapper(new org.eclipse.gmf.runtime.emf.type.core.commands.MoveElementsCommand(req));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * FIXME need to check constraint's provider to ensure we don't generate a field
+ * for e.g. Java (or Literal, which is unlikely, though) expressions
+ *
+ * [Papyrus Quick Fix] Do not generate field when the expression is provided
+ * by a GenJavaExpressionProvider.
+ */
+ public CharSequence linkConstraints(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static ");
+ String _linkCreationConstraintsClassName = it.getLinkCreationConstraintsClassName();
+ _builder.append(_linkCreationConstraintsClassName, "\t");
+ _builder.append(" getLinkConstraints() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ String _linkCreationConstraintsClassName_1 = it.getLinkCreationConstraintsClassName();
+ _builder.append(_linkCreationConstraintsClassName_1, "\t\t");
+ _builder.append(" cached = ");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _instanceAccess = this.xptPluginActivator.instanceAccess(_editorGen);
+ _builder.append(_instanceAccess, "\t\t");
+ _builder.append(".getLinkConstraints();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (cached == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ CharSequence _instanceAccess_1 = this.xptPluginActivator.instanceAccess(_editorGen_1);
+ _builder.append(_instanceAccess_1, "\t\t\t");
+ _builder.append(".setLinkConstraints(cached = new ");
+ String _linkCreationConstraintsClassName_2 = it.getLinkCreationConstraintsClassName();
+ _builder.append(_linkCreationConstraintsClassName_2, "\t\t\t");
+ _builder.append("());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return cached;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static class ");
+ String _linkCreationConstraintsClassName_3 = it.getLinkCreationConstraintsClassName();
+ _builder.append(_linkCreationConstraintsClassName_3, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ String _linkCreationConstraintsClassName_4 = it.getLinkCreationConstraintsClassName();
+ _builder.append(_linkCreationConstraintsClassName_4, "\t");
+ _builder.append("() {");
+ _builder.append("\t\t// use static method #getLinkConstraints() to access instance");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ {
+ EList<GenLink> _links = it.getLinks();
+ for(final GenLink nextLink : _links) {
+ _builder.append("\t");
+ CharSequence _canCreate = this.canCreate(nextLink);
+ _builder.append(_canCreate, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ {
+ EList<GenLink> _links_1 = it.getLinks();
+ for(final GenLink nextLink_1 : _links_1) {
+ _builder.append("\t");
+ CharSequence _canExist = this.canExist(nextLink_1);
+ _builder.append(_canExist, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * [MG] extracted from LET statement, @see checkEMFConstraints(TypeLinkModelFacet)
+ */
+ private boolean checkChildFeatureBounds(final TypeLinkModelFacet it) {
+ boolean _and = false;
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ boolean _notEquals = (!Objects.equal(_childMetaFeature, _containmentMetaFeature));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ GenFeature _childMetaFeature_1 = it.getChildMetaFeature();
+ EStructuralFeature _ecoreFeature = _childMetaFeature_1.getEcoreFeature();
+ boolean _isUnbounded = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature);
+ boolean _not = (!_isUnbounded);
+ _and = _not;
+ }
+ return _and;
+ }
+
+ public CharSequence checkEMFConstraints(final TypeLinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenFeature _containmentMetaFeature = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature = _containmentMetaFeature.getEcoreFeature();
+ boolean _notEquals = (!Objects.equal(_ecoreFeature, null));
+ if (_notEquals) {
+ {
+ boolean _or = false;
+ GenFeature _containmentMetaFeature_1 = it.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature_1 = _containmentMetaFeature_1.getEcoreFeature();
+ boolean _isUnbounded = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_1);
+ boolean _not = (!_isUnbounded);
+ if (_not) {
+ _or = true;
+ } else {
+ boolean _checkChildFeatureBounds = this.checkChildFeatureBounds(it);
+ _or = _checkChildFeatureBounds;
+ }
+ if (_or) {
+ _builder.append("if (");
+ String _containerVariable = this._utils_qvto.getContainerVariable(it);
+ _builder.append(_containerVariable, "");
+ _builder.append(" != null) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ GenFeature _containmentMetaFeature_2 = it.getContainmentMetaFeature();
+ CharSequence _checkEMFConstraints = this.checkEMFConstraints(_containmentMetaFeature_2, it);
+ _builder.append(_checkEMFConstraints, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _checkChildFeatureBounds_1 = this.checkChildFeatureBounds(it);
+ if (_checkChildFeatureBounds_1) {
+ _builder.append("\t\t\t");
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ CharSequence _checkEMFConstraints_1 = this.checkEMFConstraints(_childMetaFeature, it);
+ _builder.append(_checkEMFConstraints_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence checkEMFConstraints(final GenFeature it, final TypeLinkModelFacet modelFacet) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenFeature _containmentMetaFeature = modelFacet.getContainmentMetaFeature();
+ EStructuralFeature _ecoreFeature = _containmentMetaFeature.getEcoreFeature();
+ boolean _notEquals = (!Objects.equal(_ecoreFeature, null));
+ if (_notEquals) {
+ {
+ EStructuralFeature _ecoreFeature_1 = it.getEcoreFeature();
+ boolean _isUnbounded = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_1);
+ boolean _not = (!_isUnbounded);
+ if (_not) {
+ _builder.append("if (");
+ String _containerVariable = this._utils_qvto.getContainerVariable(modelFacet);
+ GenClass _sourceType = modelFacet.getSourceType();
+ CharSequence _featureBoundComparator = this.featureBoundComparator(it, _containerVariable, _sourceType);
+ _builder.append(_featureBoundComparator, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence canCreate(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public boolean canCreate");
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("(");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isSansDomain = it.isSansDomain();
+ boolean _not = (!_isSansDomain);
+ if (_not) {
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ CharSequence _canCreateParameters = this.canCreateParameters(_modelFacet);
+ _builder.append(_canCreateParameters, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(") {");
+ _builder.newLine();
+ {
+ boolean _isSansDomain_1 = it.isSansDomain();
+ boolean _not_1 = (!_isSansDomain_1);
+ if (_not_1) {
+ _builder.append("\t");
+ LinkModelFacet _modelFacet_1 = it.getModelFacet();
+ CharSequence _checkEMFConstraints = this.checkEMFConstraints(_modelFacet_1);
+ _builder.append(_checkEMFConstraints, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return canExist");
+ String _uniqueIdentifier_1 = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier_1, "\t");
+ _builder.append("(");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isSansDomain_2 = it.isSansDomain();
+ boolean _not_2 = (!_isSansDomain_2);
+ if (_not_2) {
+ _builder.append("\t");
+ LinkModelFacet _modelFacet_2 = it.getModelFacet();
+ CharSequence _canCreateValues = this.canCreateValues(_modelFacet_2);
+ _builder.append(_canCreateValues, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append(");");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence featureBoundsConditionClause(final GenFeature it, final String targetVar, final GenClass targetType) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EStructuralFeature _ecoreFeature = it.getEcoreFeature();
+ boolean _notEquals = (!Objects.equal(_ecoreFeature, null));
+ if (_notEquals) {
+ {
+ EStructuralFeature _ecoreFeature_1 = it.getEcoreFeature();
+ boolean _isUnbounded = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_1);
+ boolean _not = (!_isUnbounded);
+ if (_not) {
+ CharSequence _featureBoundComparator = this.featureBoundComparator(it, targetVar, targetType);
+ _builder.append(_featureBoundComparator, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ {
+ boolean _and = false;
+ EStructuralFeature _ecoreFeature_2 = it.getEcoreFeature();
+ boolean _isSingleValued = this._oclMigrationProblems_qvto.isSingleValued(_ecoreFeature_2);
+ boolean _not_1 = (!_isSingleValued);
+ if (!_not_1) {
+ _and = false;
+ } else {
+ EStructuralFeature _ecoreFeature_3 = it.getEcoreFeature();
+ boolean _isUnbounded_1 = this._oclMigrationProblems_qvto.isUnbounded(_ecoreFeature_3);
+ boolean _not_2 = (!_isUnbounded_1);
+ _and = _not_2;
+ }
+ if (_and) {
+ _builder.append(" || ");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ {
+ EStructuralFeature _ecoreFeature_4 = it.getEcoreFeature();
+ boolean _isSingleValued_1 = this._oclMigrationProblems_qvto.isSingleValued(_ecoreFeature_4);
+ boolean _not_3 = (!_isSingleValued_1);
+ if (_not_3) {
+ CharSequence _featureUniquenessComparator = this.featureUniquenessComparator(it, targetVar, targetType);
+ _builder.append(_featureUniquenessComparator, "\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence featureBoundComparator(final GenFeature it, final String featureVar, final GenClass featureVarGenClass) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _featureValue = this.xptMetaModel.getFeatureValue(it, featureVar, featureVarGenClass);
+ _builder.append(_featureValue, "");
+ _builder.newLineIfNotEmpty();
+ {
+ EStructuralFeature _ecoreFeature = it.getEcoreFeature();
+ int _upperBound = _ecoreFeature.getUpperBound();
+ boolean _equals = (_upperBound == 1);
+ if (_equals) {
+ _builder.append("!= null");
+ _builder.newLine();
+ } else {
+ _builder.append(".size() >= ");
+ EStructuralFeature _ecoreFeature_1 = it.getEcoreFeature();
+ int _upperBound_1 = _ecoreFeature_1.getUpperBound();
+ _builder.append(_upperBound_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getCreateSemanticServiceEditCommand(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents, GenerateUsingElementTypeCreationCommand.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _greaterThan = (_size > 0);
+ if (_greaterThan) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.ICommand getSemanticCreationCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService commandService = org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(req.getContainer());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(commandService == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return commandService.getEditCommand(req);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ /**
+ * XXX for now, both constraints are injected into single method
+ * which may not be suitable for modification especially when mixing
+ * java and ocl constraints (former requires manual code).
+ * Better approach would be:
+ * if either is non-null and providers are not the same - introduce two methods,
+ * to check source and target separately. Otherwize, do it inplace.
+ */
+ public CharSequence canExist(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean canExist");
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "\t");
+ _builder.append("(");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isSansDomain = it.isSansDomain();
+ boolean _not = (!_isSansDomain);
+ if (_not) {
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ CharSequence _canExistParameters = this.canExistParameters(_modelFacet);
+ _builder.append(_canExistParameters, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(") {");
+ _builder.newLine();
+ {
+ boolean _and = false;
+ boolean _and_1 = false;
+ GenLinkConstraints _creationConstraints = it.getCreationConstraints();
+ boolean _notEquals = (!Objects.equal(_creationConstraints, null));
+ if (!_notEquals) {
+ _and_1 = false;
+ } else {
+ GenLinkConstraints _creationConstraints_1 = it.getCreationConstraints();
+ boolean _isValid = _creationConstraints_1.isValid();
+ _and_1 = _isValid;
+ }
+ if (!_and_1) {
+ _and = false;
+ } else {
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders = _editorGen.getExpressionProviders();
+ boolean _notEquals_1 = (!Objects.equal(_expressionProviders, null));
+ _and = _notEquals_1;
+ }
+ if (_and) {
+ _builder.append("try {");
+ _builder.newLine();
+ {
+ GenLinkConstraints _creationConstraints_2 = it.getCreationConstraints();
+ GenConstraint _sourceEnd = _creationConstraints_2.getSourceEnd();
+ boolean _notEquals_2 = (!Objects.equal(_sourceEnd, null));
+ if (_notEquals_2) {
+ GenLinkConstraints _creationConstraints_3 = it.getCreationConstraints();
+ GenConstraint _sourceEnd_1 = _creationConstraints_3.getSourceEnd();
+ GenExpressionProviderBase _provider = _sourceEnd_1.getProvider();
+ GenLinkConstraints _creationConstraints_4 = it.getCreationConstraints();
+ GenConstraint _sourceEnd_2 = _creationConstraints_4.getSourceEnd();
+ GenLinkConstraints _creationConstraints_5 = it.getCreationConstraints();
+ GenClass _sourceEndContextClass = _creationConstraints_5.getSourceEndContextClass();
+ GenLinkConstraints _creationConstraints_6 = it.getCreationConstraints();
+ GenClass _targetEndContextClass = _creationConstraints_6.getTargetEndContextClass();
+ CharSequence _checkAdditionalConstraint = this.checkAdditionalConstraint(_provider, _sourceEnd_2, "source", "target", _sourceEndContextClass, _targetEndContextClass);
+ _builder.append(_checkAdditionalConstraint, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenLinkConstraints _creationConstraints_7 = it.getCreationConstraints();
+ GenConstraint _targetEnd = _creationConstraints_7.getTargetEnd();
+ boolean _notEquals_3 = (!Objects.equal(_targetEnd, null));
+ if (_notEquals_3) {
+ GenLinkConstraints _creationConstraints_8 = it.getCreationConstraints();
+ GenConstraint _targetEnd_1 = _creationConstraints_8.getTargetEnd();
+ GenExpressionProviderBase _provider_1 = _targetEnd_1.getProvider();
+ GenLinkConstraints _creationConstraints_9 = it.getCreationConstraints();
+ GenConstraint _targetEnd_2 = _creationConstraints_9.getTargetEnd();
+ GenLinkConstraints _creationConstraints_10 = it.getCreationConstraints();
+ GenClass _targetEndContextClass_1 = _creationConstraints_10.getTargetEndContextClass();
+ GenLinkConstraints _creationConstraints_11 = it.getCreationConstraints();
+ GenClass _sourceEndContextClass_1 = _creationConstraints_11.getSourceEndContextClass();
+ CharSequence _checkAdditionalConstraint_1 = this.checkAdditionalConstraint(_provider_1, _targetEnd_2, "target", "source", _targetEndContextClass_1, _sourceEndContextClass_1);
+ _builder.append(_checkAdditionalConstraint_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("} catch(Exception e) {\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenDiagram _diagram_1 = it.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_1.getEditorGen();
+ CharSequence _instanceAccess = this.xptPluginActivator.instanceAccess(_editorGen_1);
+ _builder.append(_instanceAccess, "\t");
+ _builder.append(".logError(\"Link constraint evaluation error\", e); ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append("return true;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/CompartmentItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/CompartmentItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..4a8cb4d1f8b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/CompartmentItemSemanticEditPolicy.java
@@ -0,0 +1,328 @@
+/**
+ * Copyright (c) 2006-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import aspects.xpt.diagram.editpolicies.BaseItemSemanticEditPolicy;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.ConstrainedByReferenceCompartmentItemSemanticEditPolicy;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+import xpt.diagram.editpolicies.childContainerCreateCommand;
+
+@Singleton
+@SuppressWarnings("all")
+public class CompartmentItemSemanticEditPolicy extends xpt.diagram.editpolicies.CompartmentItemSemanticEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private MetaModel _metaModel;
+
+ @Inject
+ private childContainerCreateCommand xptChildContainerCreateCommand;
+
+ @Inject
+ private BaseItemSemanticEditPolicy xptBaseItemSemanticEditPolicy;
+
+ public CharSequence CompartmentItemSemanticEditPolicy(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "\t");
+ _builder.append(" extends ");
+ GenDiagram _diagram_1 = it.getDiagram();
+ CharSequence _qualifiedClassName = this.xptBaseItemSemanticEditPolicy.qualifiedClassName(_diagram_1);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence __constructor = this._constructor(it);
+ _builder.append(__constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ CharSequence _childContainerCreateCommand = this.xptChildContainerCreateCommand.childContainerCreateCommand(_childNodes);
+ _builder.append(_childContainerCreateCommand, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<ConstrainedByReferenceCompartmentItemSemanticEditPolicy> _filter = Iterators.<ConstrainedByReferenceCompartmentItemSemanticEditPolicy>filter(_allContents, ConstrainedByReferenceCompartmentItemSemanticEditPolicy.class);
+ final Function1<ConstrainedByReferenceCompartmentItemSemanticEditPolicy, Boolean> _function = new Function1<ConstrainedByReferenceCompartmentItemSemanticEditPolicy, Boolean>() {
+ public Boolean apply(final ConstrainedByReferenceCompartmentItemSemanticEditPolicy v) {
+ EList<GenCommonBase> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<ConstrainedByReferenceCompartmentItemSemanticEditPolicy> _filter_1 = IteratorExtensions.<ConstrainedByReferenceCompartmentItemSemanticEditPolicy>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("\t");
+ EList<GenChildNode> _childNodes_1 = it.getChildNodes();
+ CharSequence _childNodeReference = this.getChildNodeReference(_childNodes_1);
+ _builder.append(_childNodeReference, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _isCorrectCompartment = this.isCorrectCompartment(it);
+ _builder.append(_isCorrectCompartment, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _constraintedMoveCommand = this.constraintedMoveCommand(it);
+ _builder.append(_constraintedMoveCommand, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getChildNodeReference(final EList<GenChildNode> it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _isEmpty = it.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static Set<EReference> compartmentReferences;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("compartmentReferences = new HashSet<EReference>();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ for(final GenChildNode n : it) {
+ _builder.append("\t");
+ TypeModelFacet _modelFacet = n.getModelFacet();
+ CharSequence _childRef = this.childRef(_modelFacet, n);
+ _builder.append(_childRef, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected Iterable<EReference> getCompartmentReferences() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return compartmentReferences;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence childRef(final TypeModelFacet it, final GenNode node) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("compartmentReferences.add(");
+ TypeModelFacet _modelFacet = node.getModelFacet();
+ GenFeature _containmentMetaFeature = _modelFacet.getContainmentMetaFeature();
+ CharSequence _MetaFeature = this._metaModel.MetaFeature(_containmentMetaFeature);
+ _builder.append(_MetaFeature, "");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence isCorrectCompartment(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean isMovedIntoCorrectCompartment(MoveRequest req){");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for(Object entry : req.getElementsToMove().entrySet()) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(entry instanceof Map.Entry<?, ?>) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Map.Entry<?, ?> mapEntry = (Map.Entry<?, ?>)entry;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Object key = mapEntry.getKey();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if(key instanceof EObject) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("EObject dropppedObject = (EObject)key;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("EObject semanticHost = ((IGraphicalEditPart)getHost()).resolveSemanticElement();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("boolean foundERefrences = false;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if(semanticHost != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("for(EReference ref : getCompartmentReferences()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("if(ref.isContainment()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("foundERefrences = PackageUtil.canContain(semanticHost.eClass(), ref, dropppedObject.eClass(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("foundERefrences = PackageUtil.canReference(semanticHost.eClass(), ref, dropppedObject.eClass());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("if(foundERefrences) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence constraintedMoveCommand(final GenCompartment it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("protected Command getMoveCommand(MoveRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (isMovedIntoCorrectCompartment(req)){\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.getMoveCommand(req);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/DiagramItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/DiagramItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..87f36ff5cd1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/DiagramItemSemanticEditPolicy.java
@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2006, 2009 Borland Software Corporation
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Singleton;
+
+@Singleton
+@SuppressWarnings("all")
+public class DiagramItemSemanticEditPolicy extends xpt.diagram.editpolicies.DiagramItemSemanticEditPolicy {
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/LinkItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/LinkItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..9d484d170e3
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/LinkItemSemanticEditPolicy.java
@@ -0,0 +1,133 @@
+/**
+ * Copyright (c) 2007-2012 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Borland) - [243151] explicit source/target for links
+ * - #386838 - migrate to Xtend2
+ * Vincent Lorenzo (CEA-LIST)
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import impl.diagram.commands.DeleteLinkCommand;
+import java.util.Arrays;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import utils.UtilsItemSemanticEditPolicy;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class LinkItemSemanticEditPolicy extends xpt.diagram.editpolicies.LinkItemSemanticEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private DeleteLinkCommand _deleteLinkCommand;
+
+ @Inject
+ @Extension
+ private UtilsItemSemanticEditPolicy _utilsItemSemanticEditPolicy;
+
+ protected CharSequence _getDestroySemanticCommand(final TypeLinkModelFacet it, final GenLink genLink) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingDeleteService> _filter = Iterators.<EditPartUsingDeleteService>filter(_allContents, EditPartUsingDeleteService.class);
+ final Function1<EditPartUsingDeleteService, Boolean> _function = new Function1<EditPartUsingDeleteService, Boolean>() {
+ public Boolean apply(final EditPartUsingDeleteService v) {
+ EList<GenCommonBase> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(genLink));
+ }
+ };
+ Iterator<EditPartUsingDeleteService> _filter_1 = IteratorExtensions.<EditPartUsingDeleteService>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _destroyElementCommandByService = this._utilsItemSemanticEditPolicy.getDestroyElementCommandByService(it);
+ _builder.append(_destroyElementCommandByService, "\t");
+ _builder.newLineIfNotEmpty();
+ } else {
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getDestroyElementCommand(org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand cmd = new org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand(getEditingDomain(), null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("cmd.setTransactionNestingEnabled(true);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<org.eclipse.emf.ecore.EObject> todestroy=new java.util.ArrayList<org.eclipse.emf.ecore.EObject>();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("todestroy.add(req.getElementToDestroy());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand(req));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("cmd.add(new org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper(new org.eclipse.emf.edit.command.DeleteCommand(getEditingDomain(),todestroy )));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(cmd.reduce());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//return getGEFWrapper(");
+ CharSequence _newDeleteLinkWithClassCommand = this._deleteLinkCommand.newDeleteLinkWithClassCommand(it, genLink, "req");
+ _builder.append(_newDeleteLinkWithClassCommand, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getDestroySemanticCommand(final LinkModelFacet it, final GenLink genLink) {
+ if (it instanceof FeatureLinkModelFacet) {
+ return _getDestroySemanticCommand((FeatureLinkModelFacet)it, genLink);
+ } else if (it instanceof TypeLinkModelFacet) {
+ return _getDestroySemanticCommand((TypeLinkModelFacet)it, genLink);
+ } else if (it != null) {
+ return _getDestroySemanticCommand(it, genLink);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, genLink).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..6d0d0204f0c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/NodeItemSemanticEditPolicy.java
@@ -0,0 +1,594 @@
+/**
+ * Copyright (c) 2007-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - [257632] do not rely on EditPart presence for element deletion
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import aspects.xpt.diagram.editpolicies.BaseItemSemanticEditPolicy;
+import aspects.xpt.diagram.editpolicies.linkCommands;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import utils.UtilsItemSemanticEditPolicy;
+import xpt.Common;
+import xpt.diagram.editpolicies.Utils_qvto;
+import xpt.diagram.editpolicies.childContainerCreateCommand;
+import xpt.editor.VisualIDRegistry;
+
+/**
+ * This template should be called only for non-design nodes (modelFacet != null)
+ * because *ItemSemanticEditPolicy responsible for dealing with semantic model
+ * elements and meaningless (should not be generated) for pure design nodes.
+ */
+@Singleton
+@SuppressWarnings("all")
+public class NodeItemSemanticEditPolicy extends xpt.diagram.editpolicies.NodeItemSemanticEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private UtilsItemSemanticEditPolicy _utilsItemSemanticEditPolicy;
+
+ @Inject
+ private BaseItemSemanticEditPolicy xptBaseItemSemanticEditPolicy;
+
+ @Inject
+ private childContainerCreateCommand xptChildContainerCreateCommand;
+
+ @Inject
+ private linkCommands xptLinkCommands;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence NodeItemSemanticEditPolicy(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" extends ");
+ GenDiagram _diagram_1 = it.getDiagram();
+ CharSequence _qualifiedClassName = this.xptBaseItemSemanticEditPolicy.qualifiedClassName(_diagram_1);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ Object _defaultConstructor = this.xptBaseItemSemanticEditPolicy.defaultConstructor(it);
+ _builder.append(_defaultConstructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ CharSequence _childContainerCreateCommand = this.xptChildContainerCreateCommand.childContainerCreateCommand(_childNodes);
+ _builder.append(_childContainerCreateCommand, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingDeleteService> _filter = Iterators.<EditPartUsingDeleteService>filter(_allContents, EditPartUsingDeleteService.class);
+ final Function1<EditPartUsingDeleteService, Boolean> _function = new Function1<EditPartUsingDeleteService, Boolean>() {
+ public Boolean apply(final EditPartUsingDeleteService v) {
+ EList<GenCommonBase> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<EditPartUsingDeleteService> _filter_1 = IteratorExtensions.<EditPartUsingDeleteService>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _destroyElementCommandByService = this._utilsItemSemanticEditPolicy.getDestroyElementCommandByService(it);
+ _builder.append(_destroyElementCommandByService, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ CharSequence _destroyElementCommand = this.getDestroyElementCommand(it);
+ _builder.append(_destroyElementCommand, "");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _hasChildrenOrCompartments = this._utils_qvto.hasChildrenOrCompartments(it);
+ if (_hasChildrenOrCompartments) {
+ CharSequence _addDestroyChildNodesCommand = this.addDestroyChildNodesCommand(it);
+ _builder.append(_addDestroyChildNodesCommand, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _linkCommands = this.xptLinkCommands.linkCommands(it);
+ _builder.append(_linkCommands, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getDestroyElementCommand(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getDestroyElementCommand(org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest req) {");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View) getHost().getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand cmd = new org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand(getEditingDomain(), null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("cmd.setTransactionNestingEnabled(true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EAnnotation annotation = view.getEAnnotation(\"Shortcut\");");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (annotation == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// there are indirectly referenced children, need extra commands: ");
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ EList<GenCompartment> _compartments = it.getCompartments();
+ final Function1<GenCompartment, EList<GenChildNode>> _function = new Function1<GenCompartment, EList<GenChildNode>>() {
+ public EList<GenChildNode> apply(final GenCompartment c) {
+ return c.getChildNodes();
+ }
+ };
+ List<EList<GenChildNode>> _map = ListExtensions.<GenCompartment, EList<GenChildNode>>map(_compartments, _function);
+ Iterable<GenChildNode> _flatten = Iterables.<GenChildNode>concat(_map);
+ Iterable<GenChildNode> _union = NodeItemSemanticEditPolicy.<GenChildNode>union(_childNodes, _flatten);
+ final Function1<GenChildNode, Boolean> _function_1 = new Function1<GenChildNode, Boolean>() {
+ public Boolean apply(final GenChildNode gcn) {
+ boolean _isDirectlyOwned = NodeItemSemanticEditPolicy.this._utils_qvto.isDirectlyOwned(gcn, it);
+ return Boolean.valueOf((!_isDirectlyOwned));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenChildNode>exists(_union, _function_1);
+ _builder.append(_exists, "\t\t");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _hasChildrenOrCompartments = this._utils_qvto.hasChildrenOrCompartments(it);
+ if (_hasChildrenOrCompartments) {
+ _builder.append("\t");
+ _builder.append("addDestroyChildNodesCommand(cmd);");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("addDestroyShortcutsCommand(cmd, view);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// delete host element");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.List<org.eclipse.emf.ecore.EObject> todestroy=new java.util.ArrayList<org.eclipse.emf.ecore.EObject>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("todestroy.add(req.getElementToDestroy());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("//cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand(req));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("cmd.add(new org.eclipse.papyrus.commands.wrappers.EMFtoGMFCommandWrapper(new org.eclipse.emf.edit.command.DeleteCommand(getEditingDomain(),todestroy )));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.append("\t\tcmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), view));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(cmd.reduce());");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addDestroyChildNodesCommand(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void addDestroyChildNodesCommand(org.eclipse.gmf.runtime.common.core.command.ICompositeCommand cmd) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View) getHost().getModel();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> nit = view.getChildren().iterator(); nit.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Node node = (org.eclipse.gmf.runtime.notation.Node) nit.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("switch (");
+ GenDiagram _diagram = it.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "\t\t");
+ _builder.append("(node)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ for(final GenChildNode cn : _childNodes) {
+ _builder.append("\t\t");
+ CharSequence _destroyChildNodes = this.destroyChildNodes(cn, "node", it);
+ _builder.append(_destroyChildNodes, "\t\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenCompartment> _compartments = it.getCompartments();
+ for(final GenCompartment compartment : _compartments) {
+ _builder.append("\t\t");
+ CharSequence _caseVisualID = this.xptVisualIDRegistry.caseVisualID(compartment);
+ _builder.append(_caseVisualID, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> cit = node.getChildren().iterator(); cit.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Node cnode = (org.eclipse.gmf.runtime.notation.Node) cit.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("switch (");
+ GenDiagram _diagram_1 = it.getDiagram();
+ CharSequence _visualIDMethodCall_1 = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram_1);
+ _builder.append(_visualIDMethodCall_1, "\t\t\t\t");
+ _builder.append("(cnode)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenChildNode> _childNodes_1 = compartment.getChildNodes();
+ for(final GenChildNode cn_1 : _childNodes_1) {
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ CharSequence _destroyChildNodes_1 = this.destroyChildNodes(cn_1, "cnode", it);
+ _builder.append(_destroyChildNodes_1, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * @param view - Notation element for the passed node
+ * assumes 'cmd' to point to composite command
+ */
+ public CharSequence destroyEdges(final GenNode it, final String view) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ {
+ EList<GenLink> _genIncomingLinks = it.getGenIncomingLinks();
+ boolean _isEmpty = _genIncomingLinks.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ _builder.append("for (java.util.Iterator<?> it = ");
+ _builder.append(view, "");
+ _builder.append(".getTargetEdges().iterator(); it.hasNext();) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge incomingLink = (org.eclipse.gmf.runtime.notation.Edge) it.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("switch(");
+ GenDiagram _diagram = it.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(incomingLink)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLink> _genIncomingLinks_1 = it.getGenIncomingLinks();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof FeatureLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter = IterableExtensions.<GenLink>filter(_genIncomingLinks_1, _function);
+ boolean _isEmpty_1 = IterableExtensions.isEmpty(_filter);
+ boolean _not_1 = (!_isEmpty_1);
+ if (_not_1) {
+ {
+ EList<GenLink> _genIncomingLinks_2 = it.getGenIncomingLinks();
+ final Function1<GenLink, Boolean> _function_1 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof FeatureLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_1 = IterableExtensions.<GenLink>filter(_genIncomingLinks_2, _function_1);
+ for(final GenLink il : _filter_1) {
+ _builder.append("case ");
+ CharSequence _visualID = VisualIDRegistry.visualID(il);
+ _builder.append(_visualID, "");
+ _builder.append(":");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest destroyRefReq = new org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest(incomingLink.getSource().getElement(), null, incomingLink.getTarget().getElement(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand(destroyRefReq));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), incomingLink));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ {
+ EList<GenLink> _genIncomingLinks_3 = it.getGenIncomingLinks();
+ final Function1<GenLink, Boolean> _function_2 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof TypeLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_2 = IterableExtensions.<GenLink>filter(_genIncomingLinks_3, _function_2);
+ boolean _isEmpty_2 = IterableExtensions.isEmpty(_filter_2);
+ boolean _not_2 = (!_isEmpty_2);
+ if (_not_2) {
+ {
+ EList<GenLink> _genIncomingLinks_4 = it.getGenIncomingLinks();
+ final Function1<GenLink, Boolean> _function_3 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof TypeLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_3 = IterableExtensions.<GenLink>filter(_genIncomingLinks_4, _function_3);
+ for(final GenLink il_1 : _filter_3) {
+ _builder.append("case ");
+ CharSequence _visualID_1 = VisualIDRegistry.visualID(il_1);
+ _builder.append(_visualID_1, "");
+ _builder.append(":");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest destroyEltReq = new org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest(incomingLink.getElement(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand(destroyEltReq));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), incomingLink));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ {
+ EList<GenLink> _genOutgoingLinks = it.getGenOutgoingLinks();
+ boolean _isEmpty_3 = _genOutgoingLinks.isEmpty();
+ if (_isEmpty_3) {
+ _builder.append("for (java.util.Iterator<?> it = ");
+ _builder.append(view, "");
+ _builder.append(".getSourceEdges().iterator(); it.hasNext();) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge outgoingLink = (org.eclipse.gmf.runtime.notation.Edge) it.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("switch(");
+ GenDiagram _diagram_1 = it.getDiagram();
+ CharSequence _visualIDMethodCall_1 = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram_1);
+ _builder.append(_visualIDMethodCall_1, "\t");
+ _builder.append("(outgoingLink)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLink> _genOutgoingLinks_1 = it.getGenOutgoingLinks();
+ final Function1<GenLink, Boolean> _function_4 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof FeatureLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_4 = IterableExtensions.<GenLink>filter(_genOutgoingLinks_1, _function_4);
+ boolean _isEmpty_4 = IterableExtensions.isEmpty(_filter_4);
+ boolean _not_3 = (!_isEmpty_4);
+ if (_not_3) {
+ {
+ EList<GenLink> _genOutgoingLinks_2 = it.getGenOutgoingLinks();
+ final Function1<GenLink, Boolean> _function_5 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof FeatureLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_5 = IterableExtensions.<GenLink>filter(_genOutgoingLinks_2, _function_5);
+ for(final GenLink ol : _filter_5) {
+ _builder.append("case ");
+ CharSequence _visualID_2 = VisualIDRegistry.visualID(ol);
+ _builder.append(_visualID_2, "");
+ _builder.append(":");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest destroyRefReq = new org.eclipse.gmf.runtime.emf.type.core.requests.DestroyReferenceRequest(outgoingLink.getSource().getElement(), null, outgoingLink.getTarget().getElement(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyReferenceCommand(destroyRefReq));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), outgoingLink));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ {
+ EList<GenLink> _genOutgoingLinks_3 = it.getGenOutgoingLinks();
+ final Function1<GenLink, Boolean> _function_6 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof TypeLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_6 = IterableExtensions.<GenLink>filter(_genOutgoingLinks_3, _function_6);
+ boolean _isEmpty_5 = IterableExtensions.isEmpty(_filter_6);
+ boolean _not_4 = (!_isEmpty_5);
+ if (_not_4) {
+ {
+ EList<GenLink> _genOutgoingLinks_4 = it.getGenOutgoingLinks();
+ final Function1<GenLink, Boolean> _function_7 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ LinkModelFacet _modelFacet = l.getModelFacet();
+ return Boolean.valueOf((_modelFacet instanceof TypeLinkModelFacet));
+ }
+ };
+ Iterable<GenLink> _filter_7 = IterableExtensions.<GenLink>filter(_genOutgoingLinks_4, _function_7);
+ for(final GenLink ol_1 : _filter_7) {
+ _builder.append("case ");
+ CharSequence _visualID_3 = VisualIDRegistry.visualID(ol_1);
+ _builder.append(_visualID_3, "");
+ _builder.append(":");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest destroyEltReq = new org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest(outgoingLink.getElement(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand(destroyEltReq));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("cmd.add(new org.eclipse.gmf.runtime.diagram.core.commands.DeleteCommand(getEditingDomain(), outgoingLink));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ private static <T extends Object> Iterable<T> union(final Iterable<? extends T> listA, final Iterable<? extends T> listB) {
+ List<T> result = CollectionLiterals.<T>newLinkedList();
+ Iterables.<T>addAll(result, listA);
+ Iterables.<T>addAll(result, listB);
+ return result;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/OpenDiagram.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/OpenDiagram.java
new file mode 100644
index 00000000000..7054e67cd8a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/OpenDiagram.java
@@ -0,0 +1,188 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Artem Tikhomirov (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.OpenDiagramBehaviour;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.editor.DiagramEditorUtil;
+
+@Singleton
+@SuppressWarnings("all")
+public class OpenDiagram extends xpt.diagram.editpolicies.OpenDiagram {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ public CharSequence openCommandClass_intializeNewDiagram(final OpenDiagramBehaviour it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.notation.Diagram intializeNewDiagram() throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram d = org.eclipse.gmf.runtime.diagram.core.services.ViewService.createDiagram(getDiagramDomainElement(), getDiagramKind(), getPreferencesHint());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (d == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("throw new org.eclipse.core.commands.ExecutionException(\"Can\'t create diagram of \'\" + getDiagramKind() + \"\' kind\");");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("diagramFacet.setDiagramLink(d);");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence __assert = this._common._assert("diagramFacet.eResource() != null");
+ _builder.append(__assert, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("diagramFacet.eResource().getContents().add(d);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject container = diagramFacet.eContainer();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("while (container instanceof org.eclipse.gmf.runtime.notation.View) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.notation.View) container).persist();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("container = container.eContainer();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ {
+ GenCommonBase _subject = it.getSubject();
+ GenDiagram _diagram = _subject.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ if (_equals) {
+ _builder.append("\t");
+ _builder.append("new org.eclipse.ui.actions.WorkspaceModifyOperation() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("protected void execute(org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException, java.lang.reflect.InvocationTargetException, InterruptedException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> it = diagramFacet.eResource().getResourceSet().getResources().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = (org.eclipse.emf.ecore.resource.Resource) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (nextResource.isLoaded() && !getEditingDomain().isReadOnly(nextResource)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("nextResource.save(");
+ GenCommonBase _subject_1 = it.getSubject();
+ GenDiagram _diagram_1 = _subject_1.getDiagram();
+ CharSequence _qualifiedClassName = this.xptDiagramEditorUtil.qualifiedClassName(_diagram_1);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(".getSaveOptions());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ GenCommonBase _subject_2 = it.getSubject();
+ GenDiagram _diagram_2 = _subject_2.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_2.getEditorGen();
+ GenApplication _application_1 = _editorGen_1.getApplication();
+ boolean _equals_1 = Objects.equal(null, _application_1);
+ if (_equals_1) {
+ _builder.append("\t");
+ _builder.append("} catch (java.io.IOException ex) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("throw new java.lang.reflect.InvocationTargetException(ex, \"Save operation failed\");");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}.run(null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (java.lang.reflect.InvocationTargetException e) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("throw new org.eclipse.core.commands.ExecutionException(\"Can\'t create diagram of \'\" + getDiagramKind() + \"\' kind\", e);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (InterruptedException e) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("throw new org.eclipse.core.commands.ExecutionException(\"Can\'t create diagram of \'\" + getDiagramKind() + \"\' kind\", e);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("} catch (java.io.IOException ex) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("throw new org.eclipse.core.commands.ExecutionException(\"Can\'t create diagram of \'\" + getDiagramKind() + \"\' kind\", ex);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return d;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java
new file mode 100644
index 00000000000..e742137b9bc
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextNonResizableEditPolicy.java
@@ -0,0 +1,46 @@
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+/**
+ * FIXME: [MG] - reverse the calls? call common code from here and TextelectionEP and not vice versa
+ */
+@Singleton
+@SuppressWarnings("all")
+public class TextNonResizableEditPolicy extends xpt.diagram.editpolicies.TextNonResizableEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence TextNonResizableEditPolicy_createSelectionHandles(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected java.util.List<?> createSelectionHandles() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gef.handles.MoveHandle moveHandle =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("moveHandle.setBorder(null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("moveHandle.setDragTracker(new org.eclipse.gmf.runtime.diagram.ui.tools.DragEditPartsTrackerEx(getHost()));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return java.util.Collections.singletonList(moveHandle);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.java
new file mode 100644
index 00000000000..d917367176a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.java
@@ -0,0 +1,93 @@
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class TextSelectionEditPolicy extends xpt.diagram.editpolicies.TextSelectionEditPolicy {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence textFeedback_createFocusFeedbackFigure(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.draw2d.IFigure createFocusFeedbackFigure() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.draw2d.Figure() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void paintFigure(org.eclipse.draw2d.Graphics graphics) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("graphics.drawFocus(getBounds().getResized(-1, -1));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence textFeedback_getHostPositionListener(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.draw2d.FigureListener getHostPositionListener() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (hostPositionListener == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("hostPositionListener = new org.eclipse.draw2d.FigureListener() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void figureMoved(org.eclipse.draw2d.IFigure source) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("refreshFeedback();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return hostPositionListener;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java
new file mode 100644
index 00000000000..91b44e77ab8
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/Utils_qvto.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2007-2013 Borland Software Corporation && others
+ *
+ * All rights reserved. This program && the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, && is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Alexander Shatalin (Borland) - initial API && implementation
+ * Michael Golubev (Borland) - [243151] explicit source/target for links
+ * - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+
+@Singleton
+@SuppressWarnings("all")
+public class Utils_qvto extends xpt.diagram.editpolicies.Utils_qvto {
+ public Boolean containsCreateStartLinkCommand(final GenLinkEnd it) {
+ Iterable<GenLink> _allPotentialLinks = this.getAllPotentialLinks(it);
+ for (final GenLink l : _allPotentialLinks) {
+ boolean _createStartLinkCommand = this.createStartLinkCommand(l, it);
+ if (_createStartLinkCommand) {
+ return Boolean.valueOf(true);
+ }
+ }
+ return Boolean.valueOf(false);
+ }
+
+ public Boolean containsCreateCompleteLinkCommand(final GenLinkEnd it) {
+ Iterable<GenLink> _allPotentialLinks = this.getAllPotentialLinks(it);
+ for (final GenLink l : _allPotentialLinks) {
+ boolean _createCompleteLinkCommand = this.createCompleteLinkCommand(l, it);
+ if (_createCompleteLinkCommand) {
+ return Boolean.valueOf(true);
+ }
+ }
+ return Boolean.valueOf(false);
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/childContainerCreateCommand.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/childContainerCreateCommand.java
new file mode 100644
index 00000000000..38cf5a1b3b2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/childContainerCreateCommand.java
@@ -0,0 +1,154 @@
+/**
+ * Copyright (c) 2007, 2009 Borland Software Corporation
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+import xpt.providers.ElementTypes;
+
+@Singleton
+@SuppressWarnings("all")
+public class childContainerCreateCommand extends xpt.diagram.editpolicies.childContainerCreateCommand {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private ElementTypes _elementTypes;
+
+ @Inject
+ @Extension
+ private MetaModel _metaModel;
+
+ public CharSequence childContainerCreateCommand(final Iterable<? extends GenNode> nodes) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _isEmpty = IterableExtensions.isEmpty(nodes);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(requestElementType == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.getCreateCommand(req);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ {
+ for(final GenNode n : nodes) {
+ {
+ boolean _isSansDomain = n.isSansDomain();
+ boolean _not_1 = (!_isSansDomain);
+ if (_not_1) {
+ TypeModelFacet _modelFacet = n.getModelFacet();
+ CharSequence _childNodeCreateCommand = this.childNodeCreateCommand(_modelFacet, n);
+ _builder.append(_childNodeCreateCommand, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return super.getCreateCommand(req);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence childNodeCreateCommand(final TypeModelFacet it, final GenNode node) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("if (");
+ CharSequence _accessElementType = this._elementTypes.accessElementType(node);
+ _builder.append(_accessElementType, "");
+ _builder.append(" == requestElementType) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents, GenerateUsingElementTypeCreationCommand.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _greaterThan = (_size > 0);
+ if (_greaterThan) {
+ _builder.append("\t");
+ _builder.append("// adjust the containment feature");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EReference containmentFeature = ");
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ CharSequence _MetaFeature = this._metaModel.MetaFeature(_childMetaFeature);
+ _builder.append(_MetaFeature, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("req.setContainmentFeature(containmentFeature);");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter_1 = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents_1, GenerateUsingElementTypeCreationCommand.class);
+ int _size_1 = IteratorExtensions.size(_filter_1);
+ boolean _greaterThan_1 = (_size_1 > 0);
+ if (_greaterThan_1) {
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(getSemanticCreationCommand(req));");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(new ");
+ String _createCommandQualifiedClassName = node.getCreateCommandQualifiedClassName();
+ _builder.append(_createCommandQualifiedClassName, "\t");
+ _builder.append("(req, org.eclipse.papyrus.infra.gmfdiag.common.utils.DiagramUtils.getDiagramFrom(getHost())));");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/linkCommands.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/linkCommands.java
new file mode 100644
index 00000000000..954e1f07e0b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/editpolicies/linkCommands.java
@@ -0,0 +1,482 @@
+/**
+ * Copyright (c) 2007-2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Dmitry Stadnik (Borland) - creation logic was moved in commands
+ * Michael Golubev (Borland) - [243151] explicit source/target for links
+ * - #386838 - migrate to Xtend2
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package aspects.xpt.diagram.editpolicies;
+
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+import xpt.diagram.commands.CreateLinkCommand;
+import xpt.diagram.editpolicies.Utils_qvto;
+import xpt.editor.VisualIDRegistry;
+import xpt.providers.ElementTypes;
+
+/**
+ * Start start of link creation.
+ * User click to this editpart and start dragging with link tool.
+ * Complete end of the command
+ * User points to this editpart as a link target and release mouse button.
+ *
+ * Outgoing the node is link source
+ * This element could be a source for this type of link.
+ * Incoming the node is link destination
+ * This element could be a target for this type of link.
+ *
+ * Parameters:
+ *
+ * diagram GenDiagram used to collect all defined links
+ *
+ * this Instance of GenLinkEnd for the element link could be creates to/from.
+ * This could be GenNode or GenLink in case of links to links,
+ * in the latter case it is assumed that its a TypeLink (so its model facet is LinkTypeModelFacet),
+ * because RefLinks don't have underlying semantic identity
+ */
+@Singleton
+@SuppressWarnings("all")
+public class linkCommands extends xpt.diagram.editpolicies.linkCommands {
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private aspects.xpt.diagram.editpolicies.Utils_qvto aspectsUtils_qvto;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private ElementTypes xptElementTypes;
+
+ @Inject
+ private CreateLinkCommand xptCreateLinkCommand;
+
+ public CharSequence createLinkCommands(final GenLinkEnd it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents, GenerateUsingElementTypeCreationCommand.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _lessThan = (_size < 1);
+ if (_lessThan) {
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getCreateRelationshipCommand(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gef.commands.Command command = req.getTarget() == null ?");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getStartCreateRelationshipCommand(req) : getCompleteCreateRelationshipCommand(req);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return command != null ? command : super.getCreateRelationshipCommand(req);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getStartCreateRelationshipCommand(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(requestElementType == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType;");
+ _builder.newLine();
+ {
+ Boolean _containsCreateStartLinkCommand = this.aspectsUtils_qvto.containsCreateStartLinkCommand(it);
+ if ((_containsCreateStartLinkCommand).booleanValue()) {
+ _builder.append("\t");
+ _builder.append("boolean isExtendedType = true;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ Iterable<GenLink> _allPotentialLinks = this._utils_qvto.getAllPotentialLinks(it);
+ for(final GenLink l : _allPotentialLinks) {
+ _builder.append("\t");
+ CharSequence _startLinkCommands = this.startLinkCommands(l, it);
+ _builder.append(_startLinkCommands, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.commands.Command getCompleteCreateRelationshipCommand(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.CreateRelationshipRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType requestElementType = req.getElementType();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(requestElementType == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType baseElementType = requestElementType;");
+ _builder.newLine();
+ {
+ Boolean _containsCreateCompleteLinkCommand = this.aspectsUtils_qvto.containsCreateCompleteLinkCommand(it);
+ if ((_containsCreateCompleteLinkCommand).booleanValue()) {
+ _builder.append("\t");
+ _builder.append("boolean isExtendedType = true;");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ {
+ Iterable<GenLink> _allPotentialLinks_1 = this._utils_qvto.getAllPotentialLinks(it);
+ for(final GenLink l_1 : _allPotentialLinks_1) {
+ _builder.append("\t");
+ CharSequence _completeLinkCommands = this.completeLinkCommands(l_1, it);
+ _builder.append(_completeLinkCommands, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence startLinkCommands(final GenLink it, final GenLinkEnd linkEnd) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("if (");
+ CharSequence _accessElementType = this.xptElementTypes.accessElementType(it);
+ _builder.append(_accessElementType, "");
+ _builder.append(" == baseElementType) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _createStartLinkCommand = this._utils_qvto.createStartLinkCommand(it, linkEnd);
+ if (_createStartLinkCommand) {
+ _builder.append("if(isExtendedType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getExtendedStartCreateRelationshipCommand(req, requestElementType);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return getGEFWrapper(new ");
+ CharSequence _qualifiedClassName = this.xptCreateLinkCommand.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t");
+ _builder.append("(req,");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _createStartIncomingLinkCommand = this._utils_qvto.createStartIncomingLinkCommand(it, linkEnd);
+ if (_createStartIncomingLinkCommand) {
+ _builder.append("\t\t\t");
+ _builder.append("req.getTarget(), req.getSource()");
+ _builder.newLine();
+ } else {
+ _builder.append("\t\t\t");
+ _builder.append("req.getSource(), req.getTarget()");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("));");
+ _builder.newLine();
+ } else {
+ _builder.append("return null;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence completeLinkCommands(final GenLink it, final GenLinkEnd linkEnd) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("if (");
+ CharSequence _accessElementType = this.xptElementTypes.accessElementType(it);
+ _builder.append(_accessElementType, "");
+ _builder.append(" == baseElementType) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _createCompleteLinkCommand = this._utils_qvto.createCompleteLinkCommand(it, linkEnd);
+ if (_createCompleteLinkCommand) {
+ _builder.append("\t");
+ _builder.append("if(isExtendedType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return getExtendedCompleteCreateRelationshipCommand(req, requestElementType);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return getGEFWrapper(new ");
+ CharSequence _qualifiedClassName = this.xptCreateLinkCommand.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t");
+ _builder.append("(req,");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _createCompleteOutgoingLinkCommand = this._utils_qvto.createCompleteOutgoingLinkCommand(it, linkEnd);
+ if (_createCompleteOutgoingLinkCommand) {
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("req.getTarget(), req.getSource()");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("req.getSource(), req.getTarget()");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("));");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence reorientTypeLinkCommands(final GenLinkEnd it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment(
+ ("Returns command to reorient EClass based link. New link target or source\n" + "should be the domain model element associated with this node.\n"));
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.gef.commands.Command getReorientRelationshipCommand(");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRelationshipRequest req) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("switch (getVisualID(req)) {");
+ _builder.newLine();
+ {
+ Iterable<GenLink> _reroutableTypeLinks = this._utils_qvto.getReroutableTypeLinks(it);
+ for(final GenLink link : _reroutableTypeLinks) {
+ _builder.append("\t\t\t");
+ CharSequence _reorientLinkCommandWithService = this.reorientLinkCommandWithService(link);
+ _builder.append(_reorientLinkCommandWithService, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ CharSequence _callReorientCommand = this.callReorientCommand(it);
+ _builder.append(_callReorientCommand, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenLink> _reroutableTypeLinks_1 = this._utils_qvto.getReroutableTypeLinks(it);
+ for(final GenLink link_1 : _reroutableTypeLinks_1) {
+ _builder.append("\t\t\t");
+ CharSequence _reorientLinkCommandWithoutService = this.reorientLinkCommandWithoutService(link_1);
+ _builder.append(_reorientLinkCommandWithoutService, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.getReorientRelationshipCommand(req);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence reorientLinkCommandWithService(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingReorientService> _filter = Iterators.<EditPartUsingReorientService>filter(_allContents, EditPartUsingReorientService.class);
+ final Function1<EditPartUsingReorientService, Boolean> _function = new Function1<EditPartUsingReorientService, Boolean>() {
+ public Boolean apply(final EditPartUsingReorientService v) {
+ EList<GenLink> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<EditPartUsingReorientService> _filter_1 = IteratorExtensions.<EditPartUsingReorientService>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ CharSequence _caseVisualID = this.xptVisualIDRegistry.caseVisualID(it);
+ _builder.append(_caseVisualID, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence callReorientCommand(final GenLinkEnd it) {
+ StringConcatenation _builder = new StringConcatenation();
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingReorientService> rServiceNodes = Iterators.<EditPartUsingReorientService>filter(_allContents, EditPartUsingReorientService.class);
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _isEmpty = IteratorExtensions.isEmpty(rServiceNodes);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ {
+ final Function1<EditPartUsingReorientService, Boolean> _function = new Function1<EditPartUsingReorientService, Boolean>() {
+ public Boolean apply(final EditPartUsingReorientService rServiceNode) {
+ EList<GenLink> _genView = rServiceNode.getGenView();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink view) {
+ Iterable<GenLink> _reroutableTypeLinks = linkCommands.this._utils_qvto.getReroutableTypeLinks(it);
+ List<GenLink> _list = IterableExtensions.<GenLink>toList(_reroutableTypeLinks);
+ return Boolean.valueOf(_list.contains(view));
+ }
+ };
+ Iterable<GenLink> _filter = IterableExtensions.<GenLink>filter(_genView, _function);
+ boolean _isEmpty = IterableExtensions.isEmpty(_filter);
+ return Boolean.valueOf((!_isEmpty));
+ }
+ };
+ Iterator<EditPartUsingReorientService> _filter = IteratorExtensions.<EditPartUsingReorientService>filter(rServiceNodes, _function);
+ boolean _isEmpty_1 = IteratorExtensions.isEmpty(_filter);
+ boolean _not_1 = (!_isEmpty_1);
+ if (_not_1) {
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider =org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(req.getRelationship());");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("if(provider == null) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("// Retrieve re-orient command from the Element Edit service");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand reorientCommand = provider.getEditCommand(req);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("if(reorientCommand == null) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return getGEFWrapper(reorientCommand.reduce());");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence reorientLinkCommandWithoutService(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingReorientService> _filter = Iterators.<EditPartUsingReorientService>filter(_allContents, EditPartUsingReorientService.class);
+ final Function1<EditPartUsingReorientService, Boolean> _function = new Function1<EditPartUsingReorientService, Boolean>() {
+ public Boolean apply(final EditPartUsingReorientService v) {
+ EList<GenLink> _genView = v.getGenView();
+ return Boolean.valueOf(_genView.contains(it));
+ }
+ };
+ Iterator<EditPartUsingReorientService> _filter_1 = IteratorExtensions.<EditPartUsingReorientService>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _equals = (_size == 0);
+ if (_equals) {
+ CharSequence _reorientLinkCommand = this.reorientLinkCommand(it);
+ _builder.append(_reorientLinkCommand, "");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/.gitignore
deleted file mode 100644
index 52c1b8e9b16..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/PreferenceInitializer.java
-/extensions.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/PreferenceInitializer.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/PreferenceInitializer.java
new file mode 100644
index 00000000000..4fca19e938b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/PreferenceInitializer.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ * Patrick Tessier (CEA LIST)
+ */
+package aspects.xpt.diagram.preferences;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class PreferenceInitializer extends xpt.diagram.preferences.PreferenceInitializer {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Activator xptActivator;
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/extensions.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/extensions.java
new file mode 100644
index 00000000000..ee135cd03a4
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/preferences/extensions.java
@@ -0,0 +1,201 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ */
+package aspects.xpt.diagram.preferences;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPreferencePage;
+import org.eclipse.gmf.codegen.gmfgen.GenStandardPreferencePage;
+import org.eclipse.gmf.codegen.gmfgen.StandardPreferencePages;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import utils.PrefsConstant_qvto;
+import xpt.Common;
+import xpt.diagram.Utils_qvto;
+import xpt.diagram.preferences.PreferenceInitializer;
+
+@Singleton
+@SuppressWarnings("all")
+public class extensions extends xpt.diagram.preferences.extensions {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private PrefsConstant_qvto _prefsConstant_qvto;
+
+ @Inject
+ private PreferenceInitializer xptPreferenceInitializer;
+
+ public CharSequence extensions(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ String _tripleSpace = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace, "");
+ _builder.append("<extension point=\"org.eclipse.core.runtime.preferences\" id=\"prefs\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_1 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_1, "");
+ CharSequence _xmlGeneratedTag = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_2 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_2, "");
+ _builder.append("<initializer class=\"");
+ CharSequence _qualifiedClassName = this.xptPreferenceInitializer.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_3 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_3, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ EList<GenPreferencePage> _preferencePages = it.getPreferencePages();
+ boolean _isEmpty = _preferencePages.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ String _tripleSpace_4 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_4, "");
+ _builder.append("<extension point=\"org.eclipse.ui.preferencePages\" id=\"prefpages\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_5 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_5, "");
+ CharSequence _xmlGeneratedTag_1 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_1, "");
+ _builder.newLineIfNotEmpty();
+ {
+ List<GenPreferencePage> _allPreferencePages = this._utils_qvto.allPreferencePages(it);
+ for(final GenPreferencePage pref : _allPreferencePages) {
+ {
+ if ((pref instanceof GenStandardPreferencePage)) {
+ CharSequence _papyrusPreferencePage = this.papyrusPreferencePage(((GenStandardPreferencePage) pref));
+ _builder.append(_papyrusPreferencePage, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ String _tripleSpace_6 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_6, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence papyrusPreferencePage(final GenStandardPreferencePage it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ StandardPreferencePages _kind = it.getKind();
+ boolean _equals = Objects.equal(StandardPreferencePages.GENERAL_LITERAL, _kind);
+ if (_equals) {
+ _builder.append("<page");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("id=\"");
+ String _diagramPreferencePageCategory = this._prefsConstant_qvto.getDiagramPreferencePageCategory();
+ _builder.append(_diagramPreferencePageCategory, " ");
+ _builder.append(".");
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ String _modelID = _editorGen.getModelID();
+ _builder.append(_modelID, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("name=\"");
+ GenDiagram _diagram_1 = it.getDiagram();
+ GenEditorGenerator _editorGen_1 = _diagram_1.getEditorGen();
+ String _modelID_1 = _editorGen_1.getModelID();
+ _builder.append(_modelID_1, " ");
+ _builder.append(" Diagram\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("category=\"");
+ String _diagramPreferencePageCategory_1 = this._prefsConstant_qvto.getDiagramPreferencePageCategory();
+ _builder.append(_diagramPreferencePageCategory_1, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("class=\"");
+ String _qualifiedClassName = it.getQualifiedClassName();
+ _builder.append(_qualifiedClassName, " ");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append("</page>");
+ _builder.newLine();
+ } else {
+ boolean _or = false;
+ StandardPreferencePages _kind_1 = it.getKind();
+ boolean _equals_1 = Objects.equal(StandardPreferencePages.PRINTING_LITERAL, _kind_1);
+ if (_equals_1) {
+ _or = true;
+ } else {
+ StandardPreferencePages _kind_2 = it.getKind();
+ boolean _equals_2 = Objects.equal(StandardPreferencePages.RULERS_AND_GRID_LITERAL, _kind_2);
+ _or = _equals_2;
+ }
+ if (_or) {
+ _builder.append("<page");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("id=\"");
+ String _qualifiedClassName_1 = it.getQualifiedClassName();
+ _builder.append(_qualifiedClassName_1, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("name=\"%prefpage.");
+ String _iD = it.getID();
+ _builder.append(_iD, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("category=\"");
+ String _diagramPreferencePageCategory_2 = this._prefsConstant_qvto.getDiagramPreferencePageCategory();
+ _builder.append(_diagramPreferencePageCategory_2, " ");
+ _builder.append(".");
+ GenDiagram _diagram_2 = it.getDiagram();
+ GenEditorGenerator _editorGen_2 = _diagram_2.getEditorGen();
+ String _modelID_2 = _editorGen_2.getModelID();
+ _builder.append(_modelID_2, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("class=\"");
+ String _qualifiedClassName_2 = it.getQualifiedClassName();
+ _builder.append(_qualifiedClassName_2, " ");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append("</page>");
+ _builder.newLine();
+ }
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/.gitignore
deleted file mode 100644
index fd5fcc747d8..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/DiagramUpdater.java
-/Extensions.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/DiagramUpdater.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/DiagramUpdater.java
new file mode 100644
index 00000000000..2d6b322abc7
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/DiagramUpdater.java
@@ -0,0 +1,1082 @@
+/**
+ * Copyright (c) 2007, 2010, 2014 Borland Software Corporation, CEA, and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Borland) - [243151] explicit source/target for links
+ * Michael Golubev (Montages) - API extracted to gmf.tooling.runtime, template migrated to Xtend2
+ * Christian W. Damus (CEA) - bug 426732: override the cross-reference searches for views to use the CrossReferenceAdapter
+ */
+package aspects.xpt.diagram.updater;
+
+import aspects.xpt.editor.VisualIDRegistry;
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.Set;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.FeatureLinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenContainerBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.CustomDiagramUpdaterSingleton;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificDiagramUpdater;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.GenModelUtils_qvto;
+import xpt.diagram.updater.LinkDescriptor;
+import xpt.diagram.updater.NodeDescriptor;
+import xpt.diagram.updater.UpdaterLinkType;
+import xpt.diagram.updater.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class DiagramUpdater extends xpt.diagram.updater.DiagramUpdater {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private GenModelUtils_qvto _genModelUtils_qvto;
+
+ @Inject
+ private LinkDescriptor linkDescriptor;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private NodeDescriptor nodeDescriptor;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ public CharSequence diagramUpdaterInstanceToUse(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<CustomDiagramUpdaterSingleton> _filter = Iterators.<CustomDiagramUpdaterSingleton>filter(_allContents, CustomDiagramUpdaterSingleton.class);
+ final Function1<CustomDiagramUpdaterSingleton, Boolean> _function = new Function1<CustomDiagramUpdaterSingleton, Boolean>() {
+ public Boolean apply(final CustomDiagramUpdaterSingleton v) {
+ String _singletonPath = v.getSingletonPath();
+ return Boolean.valueOf((!Objects.equal(_singletonPath, null)));
+ }
+ };
+ Iterator<CustomDiagramUpdaterSingleton> _filter_1 = IteratorExtensions.<CustomDiagramUpdaterSingleton>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _equals = (_size ==
+ 1);
+ if (_equals) {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<CustomDiagramUpdaterSingleton> _filter_2 = Iterators.<CustomDiagramUpdaterSingleton>filter(_allContents_1, CustomDiagramUpdaterSingleton.class);
+ final Function1<CustomDiagramUpdaterSingleton, Boolean> _function_1 = new Function1<CustomDiagramUpdaterSingleton, Boolean>() {
+ public Boolean apply(final CustomDiagramUpdaterSingleton v) {
+ String _singletonPath = v.getSingletonPath();
+ return Boolean.valueOf((!Objects.equal(_singletonPath, null)));
+ }
+ };
+ Iterator<CustomDiagramUpdaterSingleton> _filter_3 = IteratorExtensions.<CustomDiagramUpdaterSingleton>filter(_filter_2, _function_1);
+ CustomDiagramUpdaterSingleton _head = IteratorExtensions.<CustomDiagramUpdaterSingleton>head(_filter_3);
+ String _singletonPath = _head.getSingletonPath();
+ _builder.append(_singletonPath, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ String _diagramUpdaterQualifiedClassName = it.getDiagramUpdaterQualifiedClassName();
+ _builder.append(_diagramUpdaterQualifiedClassName, "");
+ _builder.append(".INSTANCE");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence typeOfCrossReferenceAdapter() {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.gmf.runtime.emf.core.util.CrossReferenceAdapter");
+ return _builder;
+ }
+
+ public CharSequence getSemanticChildrenMethodCall(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _diagramUpdaterInstanceToUse = this.diagramUpdaterInstanceToUse(_diagramUpdater);
+ _builder.append(_diagramUpdaterInstanceToUse, "");
+ _builder.append(".");
+ CharSequence _semanticChildrenMethodName = this.getSemanticChildrenMethodName(it);
+ _builder.append(_semanticChildrenMethodName, "");
+ return _builder;
+ }
+
+ public CharSequence doGetSomeLinksMethodCall(final GenCommonBase it, final UpdaterLinkType linkType) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(_diagram);
+ CharSequence _diagramUpdaterInstanceToUse = this.diagramUpdaterInstanceToUse(_diagramUpdater);
+ _builder.append(_diagramUpdaterInstanceToUse, "");
+ _builder.append(".");
+ CharSequence _linkGetterName = this.linkGetterName(it, linkType);
+ _builder.append(_linkGetterName, "");
+ return _builder;
+ }
+
+ public CharSequence _constructor(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected ");
+ String _diagramUpdaterClassName = it.getDiagramUpdaterClassName();
+ _builder.append(_diagramUpdaterClassName, "");
+ _builder.append("(){");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//to prevent instantiation allowing the override");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence classSingleton(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<CustomDiagramUpdaterSingleton> _filter = Iterators.<CustomDiagramUpdaterSingleton>filter(_allContents, CustomDiagramUpdaterSingleton.class);
+ final Function1<CustomDiagramUpdaterSingleton, Boolean> _function = new Function1<CustomDiagramUpdaterSingleton, Boolean>() {
+ public Boolean apply(final CustomDiagramUpdaterSingleton v) {
+ String _singletonPath = v.getSingletonPath();
+ return Boolean.valueOf((!Objects.equal(_singletonPath, null)));
+ }
+ };
+ Iterator<CustomDiagramUpdaterSingleton> _filter_1 = IteratorExtensions.<CustomDiagramUpdaterSingleton>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 1);
+ if (_notEquals) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final ");
+ String _diagramUpdaterQualifiedClassName = it.getDiagramUpdaterQualifiedClassName();
+ _builder.append(_diagramUpdaterQualifiedClassName, "");
+ _builder.append(" INSTANCE = new ");
+ String _diagramUpdaterClassName = it.getDiagramUpdaterClassName();
+ _builder.append(_diagramUpdaterClassName, "");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence DiagramUpdater(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "\t");
+ _builder.append(" implements org.eclipse.gmf.tooling.runtime.update.DiagramUpdater {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _classSingleton = this.classSingleton(it);
+ _builder.append(_classSingleton, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence __constructor = this._constructor(it);
+ _builder.append(__constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _isShortcutOrphaned = this.isShortcutOrphaned(it);
+ _builder.append(_isShortcutOrphaned, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_1.getDiagram();
+ EList<GenContainerBase> _allContainers = _diagram.getAllContainers();
+ final Function1<GenContainerBase, Boolean> _function = new Function1<GenContainerBase, Boolean>() {
+ public Boolean apply(final GenContainerBase container) {
+ return Boolean.valueOf(DiagramUpdater.this._utils_qvto.hasSemanticChildren(container));
+ }
+ };
+ Iterable<GenContainerBase> semanticContainers = IterableExtensions.<GenContainerBase>filter(_allContainers, _function);
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _genericSemanticChildrenOfView = this.getGenericSemanticChildrenOfView(it, semanticContainers);
+ _builder.append(_genericSemanticChildrenOfView, "\t");
+ _builder.newLineIfNotEmpty();
+ {
+ for(final GenContainerBase next : semanticContainers) {
+ _builder.append("\t");
+ CharSequence _semanticChildrenOfView = this.getSemanticChildrenOfView(next);
+ _builder.append(_semanticChildrenOfView, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _phantomNodesIterator = this.getPhantomNodesIterator(it);
+ _builder.append(_phantomNodesIterator, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_2.getDiagram();
+ Iterable<GenCommonBase> _allSemanticElements = this._utils_qvto.getAllSemanticElements(_diagram_1);
+ CharSequence _genericConnectedLinks = this.getGenericConnectedLinks(it, _allSemanticElements, UpdaterLinkType.CONTAINED);
+ _builder.append(_genericConnectedLinks, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_3.getDiagram();
+ Iterable<GenLinkEnd> _allSemanticDiagramElements = this._utils_qvto.getAllSemanticDiagramElements(_diagram_2);
+ CharSequence _genericConnectedLinks_1 = this.getGenericConnectedLinks(it, _allSemanticDiagramElements, UpdaterLinkType.INCOMING);
+ _builder.append(_genericConnectedLinks_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenDiagram _diagram_3 = _editorGen_4.getDiagram();
+ Iterable<GenLinkEnd> _allSemanticDiagramElements_1 = this._utils_qvto.getAllSemanticDiagramElements(_diagram_3);
+ CharSequence _genericConnectedLinks_2 = this.getGenericConnectedLinks(it, _allSemanticDiagramElements_1, UpdaterLinkType.OUTGOING);
+ _builder.append(_genericConnectedLinks_2, "\t");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenDiagram _diagram_4 = _editorGen_5.getDiagram();
+ Iterable<GenCommonBase> _allSemanticElements_1 = this._utils_qvto.getAllSemanticElements(_diagram_4);
+ for(final GenCommonBase e : _allSemanticElements_1) {
+ _builder.append("\t");
+ CharSequence _containedLinks = this.getContainedLinks(e);
+ _builder.append(_containedLinks, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenDiagram _diagram_5 = _editorGen_6.getDiagram();
+ Iterable<GenLinkEnd> _allSemanticDiagramElements_2 = this._utils_qvto.getAllSemanticDiagramElements(_diagram_5);
+ for(final GenLinkEnd e_1 : _allSemanticDiagramElements_2) {
+ _builder.append("\t");
+ CharSequence _incomingLinks = this.getIncomingLinks(e_1);
+ _builder.append(_incomingLinks, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenDiagram _diagram_6 = _editorGen_7.getDiagram();
+ Iterable<GenLinkEnd> _allSemanticDiagramElements_3 = this._utils_qvto.getAllSemanticDiagramElements(_diagram_6);
+ for(final GenLinkEnd e_2 : _allSemanticDiagramElements_3) {
+ _builder.append("\t");
+ CharSequence _outgoingLinks = this.getOutgoingLinks(e_2);
+ _builder.append(_outgoingLinks, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ GenDiagram _diagram_7 = _editorGen_8.getDiagram();
+ Iterable<GenLink> _allContainedLinks = this._utils_qvto.getAllContainedLinks(_diagram_7);
+ for(final GenLink link : _allContainedLinks) {
+ _builder.append("\t");
+ CharSequence _containedLinksByTypeMethod = this.getContainedLinksByTypeMethod(link);
+ _builder.append(_containedLinksByTypeMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_9 = it.getEditorGen();
+ GenDiagram _diagram_8 = _editorGen_9.getDiagram();
+ Iterable<GenLink> _allIncomingLinks = this._utils_qvto.getAllIncomingLinks(_diagram_8);
+ for(final GenLink link_1 : _allIncomingLinks) {
+ _builder.append("\t");
+ CharSequence _incomingLinksByTypeMethod = this.getIncomingLinksByTypeMethod(link_1);
+ _builder.append(_incomingLinksByTypeMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_10 = it.getEditorGen();
+ GenDiagram _diagram_9 = _editorGen_10.getDiagram();
+ Iterable<GenLink> _allOutgoingLinks = this._utils_qvto.getAllOutgoingLinks(_diagram_9);
+ for(final GenLink link_2 : _allOutgoingLinks) {
+ _builder.append("\t");
+ CharSequence _outgoingLinksByTypeMethod = this.getOutgoingLinksByTypeMethod(link_2);
+ _builder.append(_outgoingLinksByTypeMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _runtimeTypedInstance = this.runtimeTypedInstance(it);
+ _builder.append(_runtimeTypedInstance, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getConnectedLinks(final GenCommonBase it, final Iterable<GenLink> genLinks, final UpdaterLinkType linkType, final boolean needCrossReferencer) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public ");
+ CharSequence _listOfLinkDescriptors = this.listOfLinkDescriptors(it);
+ _builder.append(_listOfLinkDescriptors, "\t\t");
+ _builder.append(" ");
+ CharSequence _linkGetterName = this.linkGetterName(it, linkType);
+ _builder.append(_linkGetterName, "\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _notEmpty = this._common_qvto.<GenLink>notEmpty(genLinks);
+ if (_notEmpty) {
+ GenClass _metaClass = this._utils_qvto.getMetaClass(it);
+ CharSequence _DeclareAndAssign = this.xptMetaModel.DeclareAndAssign(_metaClass, "modelElement", "view.getElement()");
+ _builder.append(_DeclareAndAssign, "");
+ _builder.newLineIfNotEmpty();
+ {
+ if (needCrossReferencer) {
+ CharSequence _typeOfCrossReferenceAdapter = this.typeOfCrossReferenceAdapter();
+ _builder.append(_typeOfCrossReferenceAdapter, "");
+ _builder.append(" crossReferencer = ");
+ CharSequence _typeOfCrossReferenceAdapter_1 = this.typeOfCrossReferenceAdapter();
+ _builder.append(_typeOfCrossReferenceAdapter_1, "");
+ _builder.append(".getCrossReferenceAdapter(view.eResource().getResourceSet());");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _newLinkedListOfLinkDescriptors = this.newLinkedListOfLinkDescriptors(_diagramUpdater, "result");
+ _builder.append(_newLinkedListOfLinkDescriptors, "");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ {
+ for(final GenLink link : genLinks) {
+ GenClass _metaClass_1 = this._utils_qvto.getMetaClass(it);
+ boolean _isExternalInterface = this._genModelUtils_qvto.isExternalInterface(_metaClass_1);
+ CharSequence _colectConnectedLinks = this.colectConnectedLinks(link, linkType, needCrossReferencer, _isExternalInterface);
+ _builder.append(_colectConnectedLinks, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("return result;");
+ _builder.newLine();
+ } else {
+ _builder.append("return ");
+ CharSequence _newEmptyList = this.newEmptyList();
+ _builder.append(_newEmptyList, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence colectConnectedLinks(final GenLink it, final UpdaterLinkType linkType, final boolean needCrossReferencer, final boolean isExternalInterface) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ {
+ boolean _and = false;
+ if (!isExternalInterface) {
+ _and = false;
+ } else {
+ LinkModelFacet _modelFacet_1 = it.getModelFacet();
+ boolean _oclIsKindOf = this._common_qvto.oclIsKindOf(_modelFacet_1, FeatureLinkModelFacet.class);
+ boolean _not = (!_oclIsKindOf);
+ _and = _not;
+ }
+ if (_and) {
+ _builder.append("if (");
+ LinkModelFacet _modelFacet_2 = it.getModelFacet();
+ GenClass _linkEndType = this._utils_qvto.getLinkEndType(_modelFacet_2, linkType);
+ CharSequence _IsInstance = this.xptMetaModel.IsInstance(_linkEndType, "modelElement");
+ _builder.append(_IsInstance, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("result.addAll(");
+ LinkModelFacet _modelFacet_3 = it.getModelFacet();
+ CharSequence _chooseConnectedLinksByTypeMethodName = this.chooseConnectedLinksByTypeMethodName(_modelFacet_3, linkType, it);
+ _builder.append(_chooseConnectedLinksByTypeMethodName, "");
+ _builder.append("(");
+ {
+ boolean _and_1 = false;
+ if (!isExternalInterface) {
+ _and_1 = false;
+ } else {
+ LinkModelFacet _modelFacet_4 = it.getModelFacet();
+ boolean _oclIsKindOf_1 = this._common_qvto.oclIsKindOf(_modelFacet_4, FeatureLinkModelFacet.class);
+ boolean _not_1 = (!_oclIsKindOf_1);
+ _and_1 = _not_1;
+ }
+ if (_and_1) {
+ LinkModelFacet _modelFacet_5 = it.getModelFacet();
+ GenClass _linkEndType_1 = this._utils_qvto.getLinkEndType(_modelFacet_5, linkType);
+ CharSequence _CastEObject = this.xptMetaModel.CastEObject(_linkEndType_1, "modelElement");
+ _builder.append(_CastEObject, "");
+ } else {
+ _builder.append("modelElement");
+ }
+ }
+ {
+ if (needCrossReferencer) {
+ _builder.append(", crossReferencer");
+ }
+ }
+ _builder.append(")); ");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _and_2 = false;
+ if (!isExternalInterface) {
+ _and_2 = false;
+ } else {
+ LinkModelFacet _modelFacet_6 = it.getModelFacet();
+ boolean _oclIsKindOf_2 = this._common_qvto.oclIsKindOf(_modelFacet_6, FeatureLinkModelFacet.class);
+ boolean _not_2 = (!_oclIsKindOf_2);
+ _and_2 = _not_2;
+ }
+ if (_and_2) {
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getIncomingLinksByTypeMethod(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append(" ");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" \t\t");
+ _builder.append("protected java.util.Collection<");
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, " \t\t");
+ _builder.append("> ");
+ CharSequence _connectedLinksByTypeMethodName = this.getConnectedLinksByTypeMethodName(it,
+ UpdaterLinkType.INCOMING);
+ _builder.append(_connectedLinksByTypeMethodName, " \t\t");
+ _builder.append("(");
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ GenClass _targetType = _modelFacet.getTargetType();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_targetType);
+ _builder.append(_QualifiedClassName, " \t\t");
+ _builder.append(" target, ");
+ CharSequence _typeOfCrossReferenceAdapter = this.typeOfCrossReferenceAdapter();
+ _builder.append(_typeOfCrossReferenceAdapter, " \t\t");
+ _builder.append(" crossReferencer) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ GenDiagramUpdater _diagramUpdater_1 = this.diagramUpdater(it);
+ CharSequence _newLinkedListOfLinkDescriptors = this.newLinkedListOfLinkDescriptors(_diagramUpdater_1, "result");
+ _builder.append(_newLinkedListOfLinkDescriptors, " ");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("java.util.Collection<org.eclipse.emf.ecore.EStructuralFeature.Setting> settings = crossReferencer.getInverseReferences(target);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("for (org.eclipse.emf.ecore.EStructuralFeature.Setting setting : settings) {");
+ _builder.newLine();
+ _builder.append(" ");
+ LinkModelFacet _modelFacet_1 = it.getModelFacet();
+ CharSequence _incomingLinksByTypeMethodBody = this.getIncomingLinksByTypeMethodBody(_modelFacet_1, it);
+ _builder.append(_incomingLinksByTypeMethodBody, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return result; ");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getICustomDiagramUpdater(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.part.ICustomDiagramUpdater<");
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _qualifiedClassName = this.nodeDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append(">");
+ return _builder;
+ }
+
+ public CharSequence getSemanticChildrenOfView(final GenContainerBase it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<SpecificDiagramUpdater> _filter = Iterators.<SpecificDiagramUpdater>filter(_allContents, SpecificDiagramUpdater.class);
+ final Function1<SpecificDiagramUpdater, Boolean> _function = new Function1<SpecificDiagramUpdater, Boolean>() {
+ public Boolean apply(final SpecificDiagramUpdater v) {
+ boolean _and = false;
+ GenCommonBase _genNode = v.getGenNode();
+ boolean _equals = Objects.equal(_genNode, it);
+ if (!_equals) {
+ _and = false;
+ } else {
+ String _classpath = v.getClasspath();
+ boolean _notEquals = (!Objects.equal(_classpath, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<SpecificDiagramUpdater> _filter_1 = IteratorExtensions.<SpecificDiagramUpdater>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<SpecificDiagramUpdater> _filter_2 = Iterators.<SpecificDiagramUpdater>filter(_allContents_1, SpecificDiagramUpdater.class);
+ final Function1<SpecificDiagramUpdater, Boolean> _function_1 = new Function1<SpecificDiagramUpdater, Boolean>() {
+ public Boolean apply(final SpecificDiagramUpdater v) {
+ boolean _and = false;
+ GenCommonBase _genNode = v.getGenNode();
+ boolean _equals = Objects.equal(_genNode, it);
+ if (!_equals) {
+ _and = false;
+ } else {
+ String _classpath = v.getClasspath();
+ boolean _notEquals = (!Objects.equal(_classpath, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<SpecificDiagramUpdater> _filter_3 = IteratorExtensions.<SpecificDiagramUpdater>filter(_filter_2, _function_1);
+ Iterable<SpecificDiagramUpdater> _iterable = IteratorExtensions.<SpecificDiagramUpdater>toIterable(_filter_3);
+ for(final SpecificDiagramUpdater updater : _iterable) {
+ _builder.append("public ");
+ CharSequence _listOfNodeDescriptors = this.listOfNodeDescriptors(it);
+ _builder.append(_listOfNodeDescriptors, "");
+ _builder.append(" ");
+ CharSequence _semanticChildrenMethodName = this.getSemanticChildrenMethodName(it);
+ _builder.append(_semanticChildrenMethodName, "");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _iCustomDiagramUpdater = this.getICustomDiagramUpdater(it);
+ _builder.append(_iCustomDiagramUpdater, "\t");
+ _builder.append(" customUpdater = new ");
+ String _classpath = updater.getClasspath();
+ _builder.append(_classpath, "\t");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return customUpdater.getSemanticChildren(view);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ } else {
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public ");
+ CharSequence _listOfNodeDescriptors_1 = this.listOfNodeDescriptors(it);
+ _builder.append(_listOfNodeDescriptors_1, "");
+ _builder.append(" ");
+ CharSequence _semanticChildrenMethodName_1 = this.getSemanticChildrenMethodName(it);
+ _builder.append(_semanticChildrenMethodName_1, "");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _or = false;
+ Set<GenFeature> _semanticChildrenChildFeatures = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ boolean _notEmpty = this._common_qvto.<GenFeature>notEmpty(_semanticChildrenChildFeatures);
+ if (_notEmpty) {
+ _or = true;
+ } else {
+ Iterable<GenNode> _phantomNodes = this._utils_qvto.getPhantomNodes(it);
+ boolean _notEmpty_1 = this._common_qvto.<GenNode>notEmpty(_phantomNodes);
+ _or = _notEmpty_1;
+ }
+ if (_or) {
+ _builder.append("\t");
+ CharSequence _defineModelElement = this.defineModelElement(it);
+ _builder.append(_defineModelElement, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _newLinkedListOfNodeDescriptors = this.newLinkedListOfNodeDescriptors(_diagramUpdater, "result");
+ _builder.append(_newLinkedListOfNodeDescriptors, "\t");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ {
+ Set<GenFeature> _semanticChildrenChildFeatures_1 = this._utils_qvto.getSemanticChildrenChildFeatures(it);
+ for(final GenFeature childMetaFeature : _semanticChildrenChildFeatures_1) {
+ {
+ boolean _equals = Objects.equal(null, childMetaFeature);
+ if (_equals) {
+ _builder.append("\t");
+ _builder.append("{ \t/*FIXME no containment/child feature found in the genmodel, toolsmith need to specify Class here manually*/ childElement = ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("/*FIXME no containment/child feature found in the genmodel, toolsmith need to specify correct one here manually*/;");
+ _builder.newLine();
+ } else {
+ boolean _isListType = childMetaFeature.isListType();
+ if (_isListType) {
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<?> it = ");
+ GenClass _modelElementType = this._utils_qvto.getModelElementType(it);
+ CharSequence _featureValue = this.xptMetaModel.getFeatureValue(childMetaFeature, "modelElement", _modelElementType);
+ _builder.append(_featureValue, "\t");
+ _builder.append(".iterator(); it.hasNext();) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenClass _typeGenClass = childMetaFeature.getTypeGenClass();
+ CharSequence _DeclareAndAssign = this.xptMetaModel.DeclareAndAssign(_typeGenClass, "childElement", "it.next()", true);
+ _builder.append(_DeclareAndAssign, "\t");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("\t");
+ _builder.append("{ ");
+ GenClass _typeGenClass_1 = childMetaFeature.getTypeGenClass();
+ GenClass _modelElementType_1 = this._utils_qvto.getModelElementType(it);
+ CharSequence _DeclareAndAssign_1 = this.xptMetaModel.DeclareAndAssign(_typeGenClass_1, "childElement", "modelElement", _modelElementType_1, childMetaFeature);
+ _builder.append(_DeclareAndAssign_1, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ _builder.append("\t");
+ _builder.append("int visualID = ");
+ GenDiagram _diagram = it.getDiagram();
+ CharSequence _nodeVisualIDMethodCall = this.xptVisualIDRegistry.getNodeVisualIDMethodCall(_diagram);
+ _builder.append(_nodeVisualIDMethodCall, "\t");
+ _builder.append("(view, ");
+ GenClass _typeGenClass_2 = childMetaFeature.getTypeGenClass();
+ CharSequence _DowncastToEObject = this.xptMetaModel.DowncastToEObject(_typeGenClass_2, "childElement");
+ _builder.append(_DowncastToEObject, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenNode> _semanticChildren = this._utils_qvto.getSemanticChildren(it, childMetaFeature);
+ for(final GenNode next : _semanticChildren) {
+ _builder.append("\t");
+ boolean _and = false;
+ boolean _notEquals_1 = (!Objects.equal(null, childMetaFeature));
+ if (!_notEquals_1) {
+ _and = false;
+ } else {
+ boolean _isListType_1 = childMetaFeature.isListType();
+ _and = _isListType_1;
+ }
+ CharSequence _checkChildElementVisualID = this.checkChildElementVisualID(next, Boolean.valueOf(_and));
+ _builder.append(_checkChildElementVisualID, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ {
+ Iterable<GenNode> _phantomNodes_1 = this._utils_qvto.getPhantomNodes(it);
+ boolean _notEmpty_2 = this._common_qvto.<GenNode>notEmpty(_phantomNodes_1);
+ if (_notEmpty_2) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource resource = modelElement.eResource();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.EObject> it = getPhantomNodesIterator(resource); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject childElement = it.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("if (childElement == modelElement) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("continue;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ Iterable<GenNode> _phantomNodes_2 = this._utils_qvto.getPhantomNodes(it);
+ for(final GenNode phantom : _phantomNodes_2) {
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _addNextIfPhantom = this.addNextIfPhantom(phantom);
+ _builder.append(_addNextIfPhantom, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return ");
+ CharSequence _newEmptyList = this.newEmptyList();
+ _builder.append(_newEmptyList, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence defineLinkSource(final TypeLinkModelFacet it, final boolean inLoop) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenFeature _sourceMetaFeature = it.getSourceMetaFeature();
+ boolean _isListType = _sourceMetaFeature.isListType();
+ if (_isListType) {
+ _builder.append("java.util.List<?> sources = ");
+ GenFeature _sourceMetaFeature_1 = it.getSourceMetaFeature();
+ GenClass _metaClass = it.getMetaClass();
+ CharSequence _featureValue = this.xptMetaModel.getFeatureValue(_sourceMetaFeature_1, "link", _metaClass);
+ _builder.append(_featureValue, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("Object theSource = sources.size() == 1 ? sources.get(0) : null;");
+ _builder.newLine();
+ _builder.append("if (");
+ GenClass _sourceType = it.getSourceType();
+ CharSequence _NotInstance = this.xptMetaModel.NotInstance(_sourceType, "theSource");
+ _builder.append(_NotInstance, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _stopLinkProcessing = this.stopLinkProcessing(inLoop);
+ _builder.append(_stopLinkProcessing, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ GenClass _sourceType_1 = it.getSourceType();
+ CharSequence _DeclareAndAssign = this.xptMetaModel.DeclareAndAssign(_sourceType_1, "src", "theSource", true);
+ _builder.append(_DeclareAndAssign, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ GenClass _sourceType_2 = it.getSourceType();
+ GenClass _metaClass_1 = it.getMetaClass();
+ GenFeature _sourceMetaFeature_2 = it.getSourceMetaFeature();
+ CharSequence _DeclareAndAssign_1 = this.xptMetaModel.DeclareAndAssign(_sourceType_2, "src", "link", _metaClass_1, _sourceMetaFeature_2);
+ _builder.append(_DeclareAndAssign_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence isDiagram(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence defineLinkDestination(final TypeLinkModelFacet it, final Boolean inLoop) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenFeature _targetMetaFeature = it.getTargetMetaFeature();
+ boolean _isListType = _targetMetaFeature.isListType();
+ if (_isListType) {
+ _builder.append("java.util.List<?> targets = ");
+ GenFeature _targetMetaFeature_1 = it.getTargetMetaFeature();
+ GenClass _metaClass = it.getMetaClass();
+ CharSequence _featureValue = this.xptMetaModel.getFeatureValue(_targetMetaFeature_1, "link", _metaClass);
+ _builder.append(_featureValue, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("Object theTarget = targets.size() == 1 ? targets.get(0) : null;");
+ _builder.newLine();
+ _builder.append("if (");
+ GenClass _targetType = it.getTargetType();
+ CharSequence _NotInstance = this.xptMetaModel.NotInstance(_targetType, "theTarget");
+ _builder.append(_NotInstance, "");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _stopLinkProcessing = this.stopLinkProcessing((inLoop).booleanValue());
+ _builder.append(_stopLinkProcessing, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ GenClass _targetType_1 = it.getTargetType();
+ CharSequence _DeclareAndAssign = this.xptMetaModel.DeclareAndAssign(_targetType_1, "dst", "theTarget", true);
+ _builder.append(_DeclareAndAssign, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ GenClass _targetType_2 = it.getTargetType();
+ GenClass _metaClass_1 = it.getMetaClass();
+ GenFeature _targetMetaFeature_2 = it.getTargetMetaFeature();
+ CharSequence _DeclareAndAssign_1 = this.xptMetaModel.DeclareAndAssign(_targetType_2, "dst", "link", _metaClass_1, _targetMetaFeature_2);
+ _builder.append(_DeclareAndAssign_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence getOutgoingLinksByTypeMethodSignature(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("protected java.util.Collection<");
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(it);
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("> ");
+ CharSequence _connectedLinksByTypeMethodName = this.getConnectedLinksByTypeMethodName(it, UpdaterLinkType.OUTGOING);
+ _builder.append(_connectedLinksByTypeMethodName, "");
+ _builder.append("(");
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ GenClass _sourceType = _modelFacet.getSourceType();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_sourceType);
+ _builder.append(_QualifiedClassName, "");
+ _builder.append(" source)");
+ return _builder;
+ }
+
+ public CharSequence getGenericSemanticChildrenOfView(final GenDiagramUpdater it, final Iterable<GenContainerBase> semanticContainers) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public ");
+ CharSequence _listOfNodeDescriptors = this.listOfNodeDescriptors(it);
+ _builder.append(_listOfNodeDescriptors, "\t\t");
+ _builder.append(" getSemanticChildren(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _notEmpty = this._common_qvto.<GenContainerBase>notEmpty(semanticContainers);
+ if (_notEmpty) {
+ _builder.append("\t");
+ _builder.append("switch (");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(view)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ for(final GenContainerBase next : semanticContainers) {
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _semanticChildrenCase = this.getSemanticChildrenCase(next);
+ _builder.append(_semanticChildrenCase, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return ");
+ CharSequence _newEmptyList = this.newEmptyList();
+ _builder.append(_newEmptyList, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _getContainedLinksByTypeMethod(final TypeLinkModelFacet it, final GenLink genLink) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected java.util.Collection<");
+ GenDiagramUpdater _diagramUpdater = this.diagramUpdater(genLink);
+ CharSequence _qualifiedClassName = this.linkDescriptor.qualifiedClassName(_diagramUpdater);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> ");
+ CharSequence _connectedLinksByTypeMethodName = this.getConnectedLinksByTypeMethodName(genLink, UpdaterLinkType.CONTAINED);
+ _builder.append(_connectedLinksByTypeMethodName, "\t");
+ _builder.append("(");
+ GenFeature _childMetaFeature = it.getChildMetaFeature();
+ GenClass _genClass = _childMetaFeature.getGenClass();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_genClass);
+ _builder.append(_QualifiedClassName, "\t");
+ _builder.append(" container) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _containedLinksByTypeMethodBody = this.getContainedLinksByTypeMethodBody(it, genLink, false);
+ _builder.append(_containedLinksByTypeMethodBody, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getGenericConnectedLinks(final GenDiagramUpdater it, final Iterable<? extends GenCommonBase> linkContainers, final UpdaterLinkType linkType) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ CharSequence _listOfLinkDescriptors = this.listOfLinkDescriptors(it);
+ _builder.append(_listOfLinkDescriptors, "\t");
+ _builder.append(" get");
+ String _linkMethodSuffix = this._utils_qvto.getLinkMethodSuffix(linkType);
+ _builder.append(_linkMethodSuffix, "\t");
+ _builder.append("Links(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _notEmpty = this._common_qvto.notEmpty(linkContainers);
+ if (_notEmpty) {
+ _builder.append("\t");
+ _builder.append("switch (");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "\t");
+ _builder.append("(view)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ for(final GenCommonBase next : linkContainers) {
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _containedLinksCase = this.getContainedLinksCase(next, linkType);
+ _builder.append(_containedLinksCase, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return ");
+ CharSequence _newEmptyList = this.newEmptyList();
+ _builder.append(_newEmptyList, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence runtimeTypedInstance(final GenDiagramUpdater it) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence getContainedLinksByTypeMethod(final LinkModelFacet it, final GenLink genLink) {
+ if (it instanceof FeatureLinkModelFacet) {
+ return _getContainedLinksByTypeMethod((FeatureLinkModelFacet)it, genLink);
+ } else if (it instanceof TypeLinkModelFacet) {
+ return _getContainedLinksByTypeMethod((TypeLinkModelFacet)it, genLink);
+ } else if (it != null) {
+ return _getContainedLinksByTypeMethod(it, genLink);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, genLink).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/Extensions.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/Extensions.java
new file mode 100644
index 00000000000..f6bd9af1b6a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/updater/Extensions.java
@@ -0,0 +1,25 @@
+/**
+ * Copyright (c) 2007, 2009 Borland Software Corporation
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Gabriel Pascual (ALL4TEC) - Bug 372322
+ */
+package aspects.xpt.diagram.updater;
+
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import xpt.diagram.updater.extensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class Extensions extends extensions {
+ public CharSequence extensions(final GenDiagramUpdater it) {
+ return null;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/.gitignore
deleted file mode 100644
index 9938cca4f24..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/ViewStyles.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/ViewStyles.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/ViewStyles.java
new file mode 100644
index 00000000000..f596a952957
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/diagram/views/ViewStyles.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2007, 2009 Borland Software Corporation
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - [257119] Create views directly, not through ViewFactories
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.diagram.views;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.diagram.ViewmapAttributesUtils_qvto;
+
+/**
+ * Renamed from xpt::diagram::views::Utils.xpt
+ * in order to have consistent naming between Xtend files migrated from _qvto helpers and xpt templates
+ */
+@Singleton
+@SuppressWarnings("all")
+public class ViewStyles extends xpt.diagram.views.ViewStyles {
+ @Inject
+ @Extension
+ private ViewmapAttributesUtils_qvto _viewmapAttributesUtils_qvto;
+
+ protected CharSequence _offset(final GenExternalNodeLabel it, final String viewVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _or = false;
+ Viewmap _viewmap = it.getViewmap();
+ int _labelOffsetX = this._viewmapAttributesUtils_qvto.labelOffsetX(_viewmap, 0);
+ boolean _notEquals = (_labelOffsetX != 0);
+ if (_notEquals) {
+ _or = true;
+ } else {
+ Viewmap _viewmap_1 = it.getViewmap();
+ int _labelOffsetY = this._viewmapAttributesUtils_qvto.labelOffsetY(_viewmap_1, 0);
+ boolean _notEquals_1 = (_labelOffsetY != 0);
+ _or = _notEquals_1;
+ }
+ if (_or) {
+ Viewmap _viewmap_2 = it.getViewmap();
+ int _labelOffsetX_1 = this._viewmapAttributesUtils_qvto.labelOffsetX(_viewmap_2, 0);
+ Viewmap _viewmap_3 = it.getViewmap();
+ int _labelOffsetY_1 = this._viewmapAttributesUtils_qvto.labelOffsetY(_viewmap_3, 0);
+ CharSequence _offset = this.offset(it, viewVar, _labelOffsetX_1, _labelOffsetY_1);
+ _builder.append(_offset, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ CharSequence _offset_1 = this.offset(it, viewVar, 0, 5);
+ _builder.append(_offset_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence offset(final GenLabel it, final String viewVar) {
+ if (it instanceof GenExternalNodeLabel) {
+ return _offset((GenExternalNodeLabel)it, viewVar);
+ } else if (it instanceof GenLinkLabel) {
+ return _offset((GenLinkLabel)it, viewVar);
+ } else if (it != null) {
+ return _offset(it, viewVar);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, viewVar).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/.gitignore
index 34e4cdc198a..0212a138869 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/.gitignore
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/.gitignore
@@ -1,10 +1,4 @@
-/Editor.java
-/DeleteElementAction.java
-/DiagramEditorContextMenuProvider.java
-/VisualIDRegistry.java
-/extensions.java
-/ActionBarContributor.java
-/NewDiagramFileWizard.java
-/DocumentProvider.java
-/ResourceSetModificationListener.java
-/ValidateAction.java
+/InitDiagramFileAction.java
+/CreationWizard.java
+/DiagramEditorUtil.java
+/ResourceSetInfo.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java
new file mode 100644
index 00000000000..67ac810011e
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ActionBarContributor.java
@@ -0,0 +1,108 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import aspects.xpt.editor.Editor;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ActionBarContributor extends xpt.editor.ActionBarContributor {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Editor xptEditor;
+
+ public CharSequence ActionBarContributor(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" ");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected Class<");
+ CharSequence _qualifiedClassName = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> getEditorClass() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _qualifiedClassName_1 = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(".class;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected String getEditorId() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _qualifiedClassName_2 = this.xptEditor.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t");
+ _builder.append(".ID;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _initMethod = this.initMethod(it);
+ _builder.append(_initMethod, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/CreationWizard.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/CreationWizard.java
new file mode 100644
index 00000000000..10ac89c8643
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/CreationWizard.java
@@ -0,0 +1,595 @@
+package aspects.xpt.editor;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Externalizer;
+import xpt.ExternalizerUtils_qvto;
+import xpt.editor.CreationWizardPage;
+import xpt.editor.DiagramEditorUtil;
+import xpt.editor.GenDiagram_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class CreationWizard extends xpt.editor.CreationWizard {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ @Extension
+ private ExternalizerUtils_qvto _externalizerUtils_qvto;
+
+ @Inject
+ @Extension
+ private GenDiagram_qvto _genDiagram_qvto;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private CreationWizardPage xptCreationWizardPage;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ @Inject
+ private Externalizer xptExternalizer;
+
+ public CharSequence CreationWizard(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "\t\t");
+ _builder.append(" ");
+ CharSequence _implementsList = this.implementsList(it);
+ _builder.append(_implementsList, "\t\t");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.ui.IWorkbench workbench;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("protected org.eclipse.jface.viewers.IStructuredSelection selection;");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected ");
+ CharSequence _qualifiedClassName = this.xptCreationWizardPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(" diagramModelFilePage;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ boolean _standaloneDomainModel = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel) {
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected ");
+ CharSequence _qualifiedClassName_1 = this.xptCreationWizardPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(" domainModelFilePage;");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.emf.ecore.resource.Resource diagram;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private boolean openNewlyCreatedDiagramEditor = true;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("public org.eclipse.ui.IWorkbench getWorkbench() {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("return workbench;");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_7 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_7, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.jface.viewers.IStructuredSelection getSelection() {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("return selection;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_8 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_8, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public final org.eclipse.emf.ecore.resource.Resource getDiagram() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return diagram;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_9 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_9, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public final boolean isOpenNewlyCreatedDiagramEditor() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return openNewlyCreatedDiagramEditor;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_10 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_10, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_11 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_11, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void init(org.eclipse.ui.IWorkbench workbench, org.eclipse.jface.viewers.IStructuredSelection selection) {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("this.workbench = workbench;");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("this.selection = selection;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("setWindowTitle(");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ String _i18nKeyForCreationWizard = this.i18nKeyForCreationWizard(it);
+ String _titleKey = this._externalizerUtils_qvto.titleKey(_i18nKeyForCreationWizard);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_1, _titleKey);
+ _builder.append(_accessorCall, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("setDefaultPageImageDescriptor(");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_2.getPlugin();
+ CharSequence _qualifiedClassName_2 = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(".getBundledImageDescriptor(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\"icons/wizban/New");
+ {
+ GenClass _domainDiagramElement = it.getDomainDiagramElement();
+ boolean _notEquals = (!Objects.equal(_domainDiagramElement, null));
+ if (_notEquals) {
+ GenClass _domainDiagramElement_1 = it.getDomainDiagramElement();
+ GenPackage _genPackage = _domainDiagramElement_1.getGenPackage();
+ String _prefix = _genPackage.getPrefix();
+ _builder.append(_prefix, "\t\t\t");
+ }
+ }
+ _builder.append("Wizard.gif\")); //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("setNeedsProgressMonitor(true);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_12 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_12, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void addPages() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("diagramModelFilePage = new ");
+ CharSequence _qualifiedClassName_3 = this.xptCreationWizardPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_3, "\t\t");
+ _builder.append("(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"DiagramModelFile\", getSelection(), \"");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ String _diagramFileExtension = _editorGen_3.getDiagramFileExtension();
+ _builder.append(_diagramFileExtension, "\t\t\t\t");
+ _builder.append("\"); //$NON-NLS-1$ //$NON-NLS-2$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramModelFilePage.setTitle(");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ String _i18nKeyForCreationWizardDiagramPage = this.i18nKeyForCreationWizardDiagramPage(it);
+ String _titleKey_1 = this._externalizerUtils_qvto.titleKey(_i18nKeyForCreationWizardDiagramPage);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_4, _titleKey_1);
+ _builder.append(_accessorCall_1, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramModelFilePage.setDescription(");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ String _i18nKeyForCreationWizardDiagramPage_1 = this.i18nKeyForCreationWizardDiagramPage(it);
+ String _descriptionKey = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForCreationWizardDiagramPage_1);
+ CharSequence _accessorCall_2 = this.xptExternalizer.accessorCall(_editorGen_5, _descriptionKey);
+ _builder.append(_accessorCall_2, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("addPage(diagramModelFilePage);");
+ _builder.newLine();
+ {
+ boolean _standaloneDomainModel_1 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_1) {
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("domainModelFilePage = new ");
+ CharSequence _qualifiedClassName_4 = this.xptCreationWizardPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_4, "\t\t");
+ _builder.append("(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.append("\"DomainModelFile\", getSelection(), \"");
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ String _domainFileExtension = _editorGen_6.getDomainFileExtension();
+ _builder.append(_domainFileExtension, "\t\t\t\t");
+ _builder.append("\") { //$NON-NLS-1$ //$NON-NLS-2$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("public void setVisible(boolean visible) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("if (visible) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.append("String fileName = diagramModelFilePage.getFileName();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.append("fileName = fileName.substring(0, fileName.length() - \".");
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ String _diagramFileExtension_1 = _editorGen_7.getDiagramFileExtension();
+ _builder.append(_diagramFileExtension_1, "\t\t\t\t");
+ _builder.append("\".length()); //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.append("setFileName(");
+ CharSequence _qualifiedClassName_5 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_5, "\t\t\t\t");
+ _builder.append(".getUniqueFileName(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t\t\t\t");
+ _builder.append("getContainerFullPath(), fileName, \"");
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ String _domainFileExtension_1 = _editorGen_8.getDomainFileExtension();
+ _builder.append(_domainFileExtension_1, "\t\t\t\t\t\t");
+ _builder.append("\")); //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("super.setVisible(visible);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("domainModelFilePage.setTitle(");
+ GenEditorGenerator _editorGen_9 = it.getEditorGen();
+ String _i18nKeyForCreationWizardDomainPage = this.i18nKeyForCreationWizardDomainPage(it);
+ String _titleKey_2 = this._externalizerUtils_qvto.titleKey(_i18nKeyForCreationWizardDomainPage);
+ CharSequence _accessorCall_3 = this.xptExternalizer.accessorCall(_editorGen_9, _titleKey_2);
+ _builder.append(_accessorCall_3, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("domainModelFilePage.setDescription(");
+ GenEditorGenerator _editorGen_10 = it.getEditorGen();
+ String _i18nKeyForCreationWizardDomainPage_1 = this.i18nKeyForCreationWizardDomainPage(it);
+ String _descriptionKey_1 = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForCreationWizardDomainPage_1);
+ CharSequence _accessorCall_4 = this.xptExternalizer.accessorCall(_editorGen_10, _descriptionKey_1);
+ _builder.append(_accessorCall_4, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("addPage(domainModelFilePage);");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_13 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_13, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean performFinish() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.jface.operation.IRunnableWithProgress op =");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_11 = it.getEditorGen();
+ GenApplication _application = _editorGen_11.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _builder.append("\t");
+ _builder.append("new org.eclipse.ui.actions.WorkspaceModifyOperation(null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _overrideC_1 = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("protected void execute(org.eclipse.core.runtime.IProgressMonitor monitor)");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("throws org.eclipse.core.runtime.CoreException, InterruptedException {");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("new org.eclipse.jface.operation.IRunnableWithProgress() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("public void run(org.eclipse.core.runtime.IProgressMonitor monitor)");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("throws InvocationTargetException, InterruptedException {");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("diagram = ");
+ CharSequence _qualifiedClassName_6 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_6, "\t");
+ _builder.append(".createDiagram(diagramModelFilePage.getURI(),");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _standaloneDomainModel_2 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_2) {
+ _builder.append("\t");
+ _builder.append("domainModelFilePage.getURI(),");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("monitor);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (isOpenNewlyCreatedDiagramEditor() && diagram != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _qualifiedClassName_7 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_7, "\t\t\t");
+ _builder.append(".openDiagram(diagram);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.ui.PartInitException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.jface.dialogs.ErrorDialog.openError(getContainer().getShell(),");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ GenEditorGenerator _editorGen_12 = it.getEditorGen();
+ String _i18nKeyForCreationWizardOpenEditorError = this.i18nKeyForCreationWizardOpenEditorError(it);
+ CharSequence _accessorCall_5 = this.xptExternalizer.accessorCall(_editorGen_12, _i18nKeyForCreationWizardOpenEditorError);
+ _builder.append(_accessorCall_5, "\t\t\t\t\t");
+ _builder.append(", null, e.getStatus());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getContainer().run(false, true, op);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (InterruptedException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (java.lang.reflect.InvocationTargetException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (e.getTargetException() instanceof org.eclipse.core.runtime.CoreException) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.jface.dialogs.ErrorDialog.openError(getContainer().getShell(),");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ GenEditorGenerator _editorGen_13 = it.getEditorGen();
+ String _i18nKeyForCreationWizardCreationError = this.i18nKeyForCreationWizardCreationError(it);
+ CharSequence _accessorCall_6 = this.xptExternalizer.accessorCall(_editorGen_13, _i18nKeyForCreationWizardCreationError);
+ _builder.append(_accessorCall_6, "\t\t\t\t\t");
+ _builder.append(", null,");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("((org.eclipse.core.runtime.CoreException) e.getTargetException()).getStatus());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_14 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_14.getPlugin();
+ CharSequence _qualifiedClassName_8 = this.xptActivator.qualifiedClassName(_plugin_1);
+ _builder.append(_qualifiedClassName_8, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("\"Error creating diagram\", e.getTargetException()); //$NON-NLS-1$");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return diagram != null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DeleteElementAction.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DeleteElementAction.java
new file mode 100644
index 00000000000..980f5fc13df
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DeleteElementAction.java
@@ -0,0 +1,21 @@
+/**
+ * Copyright (c) 2008, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2, use GMFT runtime
+ * Vincent Lorenzo (CEA LIST)
+ */
+package aspects.xpt.editor;
+
+import com.google.inject.Singleton;
+
+@Singleton
+@SuppressWarnings("all")
+public class DeleteElementAction extends xpt.editor.DeleteElementAction {
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorContextMenuProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorContextMenuProvider.java
new file mode 100644
index 00000000000..807235bfe1b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorContextMenuProvider.java
@@ -0,0 +1,159 @@
+/**
+ * Copyright (c) 2008, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Vincent Lorenzo (CEA LIST)
+ */
+package aspects.xpt.editor;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class DiagramEditorContextMenuProvider extends xpt.editor.DiagramEditorContextMenuProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ private Activator xptActivator;
+
+ public CharSequence DiagramEditorContextMenuProvider(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" extends org.eclipse.gmf.runtime.diagram.ui.providers.DiagramContextMenuProvider {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.ui.IWorkbenchPart part;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public DiagramEditorContextMenuProvider(org.eclipse.ui.IWorkbenchPart part, org.eclipse.gef.EditPartViewer viewer) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super(part, viewer);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("this.part = part;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void buildContextMenu(final org.eclipse.jface.action.IMenuManager menu) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getViewer().flush();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("(org.eclipse.emf.ecore.EObject) getViewer().getContents().getModel()).runExclusive(new Runnable() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_1.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService.getInstance().contributeToPopupMenu(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("DiagramEditorContextMenuProvider.this, part);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("menu.remove(org.eclipse.gmf.runtime.diagram.ui.actions.ActionIds.ACTION_DELETE_FROM_MODEL);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (Exception e) {");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_2.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(".getInstance().logError(\"Error building context menu\", e);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorUtil.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorUtil.java
new file mode 100644
index 00000000000..82881776ef6
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DiagramEditorUtil.java
@@ -0,0 +1,300 @@
+package aspects.xpt.editor;
+
+import aspects.xpt.editor.VisualIDRegistry;
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Externalizer;
+import xpt.editor.GenDiagram_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class DiagramEditorUtil extends xpt.editor.DiagramEditorUtil {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ @Extension
+ private GenDiagram_qvto _genDiagram_qvto;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private Externalizer xptExternalizer;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ public CharSequence createDiagramMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _xifexpression = null;
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _xifexpression = "This method should be called within a workspace modify operation since it creates resources.";
+ } else {
+ _xifexpression = "";
+ }
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment(_xifexpression);
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static org.eclipse.emf.ecore.resource.Resource createDiagram(org.eclipse.emf.common.util.URI diagramURI,");
+ {
+ boolean _standaloneDomainModel = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel) {
+ _builder.append(" org.eclipse.emf.common.util.URI modelURI,");
+ }
+ }
+ _builder.append(" org.eclipse.core.runtime.IProgressMonitor progressMonitor) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("progressMonitor.beginTask(");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ String _i18nKeyForCreateDiagramProgressTask = this.i18nKeyForCreateDiagramProgressTask(it);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_1, _i18nKeyForCreateDiagramProgressTask);
+ _builder.append(_accessorCall, "\t");
+ _builder.append(", 3);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.emf.ecore.resource.Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);");
+ _builder.newLine();
+ {
+ boolean _standaloneDomainModel_1 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_1) {
+ _builder.append("\t");
+ _builder.append("final org.eclipse.emf.ecore.resource.Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);");
+ _builder.newLine();
+ } else {
+ boolean _and = false;
+ GenClass _domainDiagramElement = it.getDomainDiagramElement();
+ boolean _notEquals = (!Objects.equal(_domainDiagramElement, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ boolean _hasDocumentRoot = this._genDiagram_qvto.hasDocumentRoot(it);
+ _and = _hasDocumentRoot;
+ }
+ if (_and) {
+ _builder.append("\t");
+ _builder.append("((org.eclipse.emf.ecore.xmi.XMLResource) diagramResource).getDefaultSaveOptions().put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("((org.eclipse.emf.ecore.xmi.XMLResource) diagramResource).getDefaultLoadOptions().put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);");
+ _builder.newLine();
+ }
+ }
+ }
+ _builder.append("\t");
+ _builder.append("final String diagramName = diagramURI.lastSegment();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand command = new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(editingDomain, ");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ String _i18nKeyForCreateDiagramCommandLabel = this.i18nKeyForCreateDiagramCommandLabel(it);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_2, _i18nKeyForCreateDiagramCommandLabel);
+ _builder.append(_accessorCall_1, "\t");
+ _builder.append(", java.util.Collections.EMPTY_LIST) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ {
+ GenClass _domainDiagramElement_1 = it.getDomainDiagramElement();
+ boolean _notEquals_1 = (!Objects.equal(_domainDiagramElement_1, null));
+ if (_notEquals_1) {
+ _builder.append("\t\t\t");
+ GenClass _domainDiagramElement_2 = it.getDomainDiagramElement();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_domainDiagramElement_2);
+ _builder.append(_QualifiedClassName, "\t\t\t");
+ _builder.append(" model = createInitialModel();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("attachModelToResource(model, ");
+ {
+ boolean _standaloneDomainModel_2 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_2) {
+ _builder.append("model");
+ } else {
+ _builder.append("diagram");
+ }
+ }
+ _builder.append("Resource);");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram diagram = org.eclipse.gmf.runtime.diagram.core.services.ViewService.createDiagram(");
+ _builder.newLine();
+ {
+ GenClass _domainDiagramElement_3 = it.getDomainDiagramElement();
+ boolean _notEquals_2 = (!Objects.equal(_domainDiagramElement_3, null));
+ if (_notEquals_2) {
+ _builder.append("\t\t\t\t");
+ GenClass _domainDiagramElement_4 = it.getDomainDiagramElement();
+ CharSequence _DowncastToEObject = this.xptMetaModel.DowncastToEObject(_domainDiagramElement_4, "model");
+ _builder.append(_DowncastToEObject, "\t\t\t\t");
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ CharSequence _modelID = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t\t\t\t");
+ _builder.append(", ");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ CharSequence _preferenceHintAccess = this.xptActivator.preferenceHintAccess(_editorGen_3);
+ _builder.append(_preferenceHintAccess, "\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("if (diagram != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("diagramResource.getContents().add(diagram);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("diagram.setName(diagramName);");
+ _builder.newLine();
+ {
+ GenClass _domainDiagramElement_5 = it.getDomainDiagramElement();
+ boolean _notEquals_3 = (!Objects.equal(_domainDiagramElement_5, null));
+ if (_notEquals_3) {
+ _builder.append("\t\t\t\t");
+ _builder.append("diagram.setElement(");
+ GenClass _domainDiagramElement_6 = it.getDomainDiagramElement();
+ CharSequence _DowncastToEObject_1 = this.xptMetaModel.DowncastToEObject(_domainDiagramElement_6, "model");
+ _builder.append(_DowncastToEObject_1, "\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ {
+ boolean _standaloneDomainModel_3 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_3) {
+ _builder.append("modelResource.save(");
+ CharSequence _callGetSaveOptions = this.callGetSaveOptions(it);
+ _builder.append(_callGetSaveOptions, "\t\t\t\t");
+ _builder.append(");");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("diagramResource.save(");
+ CharSequence _callGetSaveOptions_1 = this.callGetSaveOptions(it);
+ _builder.append(_callGetSaveOptions_1, "\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("} catch (java.io.IOException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ CharSequence _extraLineBreak_1 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_1, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_4.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t\t\t");
+ _builder.append(".getInstance().logError(\"Unable to store model and diagram resources\", e); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.commands.operations.OperationHistoryFactory.getOperationHistory().execute(command, new org.eclipse.core.runtime.SubProgressMonitor(progressMonitor, 1), null);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (org.eclipse.core.commands.ExecutionException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_5.getPlugin();
+ CharSequence _qualifiedClassName_1 = this.xptActivator.qualifiedClassName(_plugin_1);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(".getInstance().logError(\"Unable to create model and diagram\", e); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(
+ 1);
+ _builder.append(_nonNLS_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenApplication _application_1 = _editorGen_6.getApplication();
+ boolean _equals_1 = Objects.equal(_application_1, null);
+ if (_equals_1) {
+ _builder.append("\t");
+ {
+ boolean _standaloneDomainModel_4 = this._genDiagram_qvto.standaloneDomainModel(it);
+ if (_standaloneDomainModel_4) {
+ _builder.append("setCharset(org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(modelResource));");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("setCharset(org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(diagramResource));");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return diagramResource;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DocumentProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DocumentProvider.java
new file mode 100644
index 00000000000..18075ef4d69
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/DocumentProvider.java
@@ -0,0 +1,1036 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Externalizer;
+import xpt.editor.DiagramEditorUtil;
+
+@Singleton
+@SuppressWarnings("all")
+public class DocumentProvider extends xpt.editor.DocumentProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private Externalizer xptExternalizer;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ public CharSequence setDocumentContent(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void setDocumentContent(org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument document, org.eclipse.ui.IEditorInput element) throws org.eclipse.core.runtime.CoreException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument diagramDocument = (org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument) document;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain domain = diagramDocument.getEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t");
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ if (_equals) {
+ _builder.append("if (element instanceof ");
+ CharSequence _fileEditorInputClassFQName = this.fileEditorInputClassFQName(it);
+ _builder.append(_fileEditorInputClassFQName, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IStorage storage = ((");
+ CharSequence _fileEditorInputClassFQName_1 = this.fileEditorInputClassFQName(it);
+ _builder.append(_fileEditorInputClassFQName_1, "\t\t");
+ _builder.append(") element).getStorage();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram diagram = org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil.load(domain, storage, true, getProgressMonitor());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("document.setContent(diagram);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else ");
+ }
+ }
+ _builder.append("if(element instanceof ");
+ CharSequence _uriEditorInputClassFQName = this.uriEditorInputClassFQName(it);
+ _builder.append(_uriEditorInputClassFQName, "\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.common.util.URI uri = ((");
+ CharSequence _uriEditorInputClassFQName_1 = this.uriEditorInputClassFQName(it);
+ _builder.append(_uriEditorInputClassFQName_1, "\t\t");
+ _builder.append(") element).getURI();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource resource = null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("resource = domain.getResourceSet().getResource(uri.trimFragment(), false);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (resource == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("resource = domain.getResourceSet().createResource(uri.trimFragment());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (!resource.isLoaded()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("@SuppressWarnings({ \"rawtypes\", \"unchecked\" })");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("java.util.Map<?,?> options = new java.util.HashMap(org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory.getDefaultLoadOptions());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("// @see 171060 ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("// options.put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_RECORD_UNKNOWN_FEATURE, Boolean.TRUE);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("resource.load(options);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("} catch (java.io.IOException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("resource.unload();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("throw e;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (uri.fragment() != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject rootElement = resource.getEObject(uri.fragment());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (rootElement instanceof org.eclipse.gmf.runtime.notation.Diagram) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("document.setContent(rootElement);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.EObject> it = resource.getContents().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("Object rootElement = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (rootElement instanceof org.eclipse.gmf.runtime.notation.Diagram) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("document.setContent(rootElement);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new RuntimeException(");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ String _i18nKeyForDocumentProviderNoDiagramInResourceError = this.i18nKeyForDocumentProviderNoDiagramInResourceError(it);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_1, _i18nKeyForDocumentProviderNoDiagramInResourceError);
+ _builder.append(_accessorCall, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (Exception e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.runtime.CoreException thrownExcp = null;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (e instanceof org.eclipse.core.runtime.CoreException) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("thrownExcp = (org.eclipse.core.runtime.CoreException) e;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("String msg = e.getLocalizedMessage();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("thrownExcp = new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_2.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t\t\t");
+ _builder.append(".ID, 0, ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("msg != null ? msg : ");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ String _i18nKeyForDocumentProviderDiagramLoadingError = this.i18nKeyForDocumentProviderDiagramLoadingError(it);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_3, _i18nKeyForDocumentProviderDiagramLoadingError);
+ _builder.append(_accessorCall_1, "\t\t\t\t");
+ _builder.append(", e));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw thrownExcp;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _throwIncorrectInputException = this.throwIncorrectInputException(it);
+ _builder.append(_throwIncorrectInputException, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createEditingDomain(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory.getInstance().createEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("editingDomain.setID(\"");
+ String _editingDomainID = it.getEditingDomainID();
+ _builder.append(_editingDomainID, "\t");
+ _builder.append("\"); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.emf.transaction.NotificationFilter diagramResourceModifiedFilter = org.eclipse.emf.transaction.NotificationFilter.createNotifierFilter(editingDomain.getResourceSet()).and(org.eclipse.emf.transaction.NotificationFilter.createEventTypeFilter(org.eclipse.emf.common.notify.Notification.ADD)).and(org.eclipse.emf.transaction.NotificationFilter.createFeatureFilter(org.eclipse.emf.ecore.resource.ResourceSet.class, org.eclipse.emf.ecore.resource.ResourceSet.RESOURCE_SET__RESOURCES));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("editingDomain.getResourceSet().eAdapters().add(new org.eclipse.emf.common.notify.Adapter() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("private org.eclipse.emf.common.notify.Notifier myTarger;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public org.eclipse.emf.common.notify.Notifier getTarget() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return myTarger;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public boolean isAdapterForType(Object type) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI_2 = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void notifyChanged(org.eclipse.emf.common.notify.Notification notification) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (diagramResourceModifiedFilter.matches(notification)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("Object value = notification.getNewValue();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (value instanceof org.eclipse.emf.ecore.resource.Resource) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("((org.eclipse.emf.ecore.resource.Resource) value).setTrackingModification(true);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI_3 = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI_3, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void setTarget(org.eclipse.emf.common.notify.Notifier newTarget) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("myTarger = newTarget;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("});\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return editingDomain;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence doSaveDocument(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void doSaveDocument(org.eclipse.core.runtime.IProgressMonitor monitor, Object element, org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument document, boolean overwrite) throws org.eclipse.core.runtime.CoreException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (!overwrite && !info.isSynchronized()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenPlugin _plugin = _editorGen.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(".ID, ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ {
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenApplication _application = _editorGen_1.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ if (_equals) {
+ _builder.append("org.eclipse.core.resources.IResourceStatus.OUT_OF_SYNC_LOCAL");
+ } else {
+ _builder.append("org.eclipse.core.runtime.IStatus.ERROR");
+ }
+ }
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ String _i18nKeyForDocumentUnsynchronizedFileSaveError = this.i18nKeyForDocumentUnsynchronizedFileSaveError(it);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_2, _i18nKeyForDocumentUnsynchronizedFileSaveError);
+ _builder.append(_accessorCall, "\t\t\t\t");
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("null));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenApplication _application_1 = _editorGen_3.getApplication();
+ boolean _equals_1 = Objects.equal(null, _application_1);
+ if (_equals_1) {
+ _builder.append("\t");
+ _builder.append("info.stopResourceListening();");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("fireElementStateChanging(element);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("monitor.beginTask(");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ String _i18nKeyForDocumentSaveDiagramTask = this.i18nKeyForDocumentSaveDiagramTask(it);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_4, _i18nKeyForDocumentSaveDiagramTask);
+ _builder.append(_accessorCall_1, "\t\t\t");
+ _builder.append(", info.getResourceSet().getResources().size() + 1); //\"Saving diagram\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("monitor.setTaskName(org.eclipse.osgi.util.NLS.bind(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ String _i18nKeyForDocumentSaveNextResourceTask = this.i18nKeyForDocumentSaveNextResourceTask(it);
+ CharSequence _accessorCall_2 = this.xptExternalizer.accessorCall(_editorGen_5, _i18nKeyForDocumentSaveNextResourceTask);
+ _builder.append(_accessorCall_2, "\t\t\t\t\t\t");
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("nextResource.getURI()));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (nextResource.isLoaded() && !info.getEditingDomain().isReadOnly(nextResource)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("nextResource.save(");
+ CharSequence _callGetSaveOptions = this.xptDiagramEditorUtil.callGetSaveOptions(it);
+ _builder.append(_callGetSaveOptions, "\t\t\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("} catch (java.io.IOException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_6.getPlugin();
+ CharSequence _qualifiedClassName_1 = this.xptActivator.qualifiedClassName(_plugin_1);
+ _builder.append(_qualifiedClassName_1, "\t\t\t\t\t\t");
+ _builder.append(".ID, org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("monitor.worked(1);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("monitor.done();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("info.setModificationStamp(computeModificationStamp(info));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (RuntimeException x) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw x;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} ");
+ {
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenApplication _application_2 = _editorGen_7.getApplication();
+ boolean _equals_2 = Objects.equal(null, _application_2);
+ if (_equals_2) {
+ _builder.append(" finally {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("info.startResourceListening();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} ");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.common.util.URI newResoruceURI;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.List<org.eclipse.core.resources.IFile> affectedFiles = null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ {
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ GenApplication _application_3 = _editorGen_8.getApplication();
+ boolean _equals_3 = Objects.equal(null, _application_3);
+ if (_equals_3) {
+ _builder.append("if (element instanceof ");
+ CharSequence _fileEditorInputClassFQName = this.fileEditorInputClassFQName(it);
+ _builder.append(_fileEditorInputClassFQName, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IFile newFile = ((");
+ CharSequence _fileEditorInputClassFQName_1 = this.fileEditorInputClassFQName(it);
+ _builder.append(_fileEditorInputClassFQName_1, "\t\t\t");
+ _builder.append(") element).getFile();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("affectedFiles = java.util.Collections.singletonList(newFile);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("newResoruceURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(newFile.getFullPath().toString(), true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else ");
+ }
+ }
+ _builder.append("if(element instanceof ");
+ CharSequence _uriEditorInputClassFQName = this.uriEditorInputClassFQName(it);
+ _builder.append(_uriEditorInputClassFQName, "\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("newResoruceURI = ((");
+ CharSequence _uriEditorInputClassFQName_1 = this.uriEditorInputClassFQName(it);
+ _builder.append(_uriEditorInputClassFQName_1, "\t\t\t");
+ _builder.append(") element).getURI();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _throwIncorrectInputException = this.throwIncorrectInputException(it);
+ _builder.append(_throwIncorrectInputException, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (false == document instanceof org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen_9 = it.getEditorGen();
+ GenPlugin _plugin_2 = _editorGen_9.getPlugin();
+ CharSequence _qualifiedClassName_2 = this.xptActivator.qualifiedClassName(_plugin_2);
+ _builder.append(_qualifiedClassName_2, "\t\t\t");
+ _builder.append(".ID, 0,");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\"Incorrect document used: \" + document + \" instead of org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument\", null)); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.append(" ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(2);
+ _builder.append(_nonNLS_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument diagramDocument = (org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument) document;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final org.eclipse.emf.ecore.resource.Resource newResource = diagramDocument.getEditingDomain().getResourceSet().createResource(newResoruceURI);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final org.eclipse.gmf.runtime.notation.Diagram diagramCopy = org.eclipse.emf.ecore.util.EcoreUtil.copy(diagramDocument.getDiagram());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(diagramDocument.getEditingDomain(), org.eclipse.osgi.util.NLS.bind(");
+ GenEditorGenerator _editorGen_10 = it.getEditorGen();
+ String _i18nKeyForDocumentSaveAs = this.i18nKeyForDocumentSaveAs(it);
+ CharSequence _accessorCall_3 = this.xptExternalizer.accessorCall(_editorGen_10, _i18nKeyForDocumentSaveAs);
+ _builder.append(_accessorCall_3, "\t\t\t");
+ _builder.append(", diagramCopy.getName()), affectedFiles) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("newResource.getContents().add(diagramCopy);\t\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}.execute(monitor, null);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("newResource.save(");
+ CharSequence _callGetSaveOptions_1 = this.xptDiagramEditorUtil.callGetSaveOptions(it);
+ _builder.append(_callGetSaveOptions_1, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.core.commands.ExecutionException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen_11 = it.getEditorGen();
+ GenPlugin _plugin_3 = _editorGen_11.getPlugin();
+ CharSequence _qualifiedClassName_3 = this.xptActivator.qualifiedClassName(_plugin_3);
+ _builder.append(_qualifiedClassName_3, "\t\t\t");
+ _builder.append(".ID, 0, e.getLocalizedMessage(), null));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (java.io.IOException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementStateChangeFailed(element);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, ");
+ GenEditorGenerator _editorGen_12 = it.getEditorGen();
+ GenPlugin _plugin_4 = _editorGen_12.getPlugin();
+ CharSequence _qualifiedClassName_4 = this.xptActivator.qualifiedClassName(_plugin_4);
+ _builder.append(_qualifiedClassName_4, "\t\t\t");
+ _builder.append(".ID, 0, e.getLocalizedMessage(), null));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("newResource.unload();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence computeSchedulingRule(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.core.runtime.jobs.ISchedulingRule computeSchedulingRule(org.eclipse.core.resources.IResource toCreateOrModify) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (toCreateOrModify.exists()) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(toCreateOrModify);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IResource parent = toCreateOrModify;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("do {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("* XXX This is a workaround for");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("* https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("* IResourceRuleFactory.createRule should iterate the hierarchy");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("* itself.");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("toCreateOrModify = parent;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("parent = toCreateOrModify.getParent();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} while (parent != null && !parent.exists());");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().createRule(toCreateOrModify);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence doValidateState(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void doValidateState(Object element, Object computationContext) throws org.eclipse.core.runtime.CoreException {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.resources.IFile> files2Validate = new java.util.LinkedList<org.eclipse.core.resources.IFile>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (file != null && file.isReadOnly()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("files2Validate.add(file);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.resources.ResourcesPlugin.getWorkspace().validateEdit(files2Validate.toArray(new org.eclipse.core.resources.IFile[files2Validate.size()]), computationContext);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.doValidateState(element, computationContext);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getResetRule(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.core.runtime.jobs.ISchedulingRule getResetRule(Object element) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (file != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("rules.add(org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file));");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getSaveRule(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.core.runtime.jobs.ISchedulingRule getSaveRule(Object element) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (file != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("rules.add(computeSchedulingRule(file));");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getSynchronizeRule(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.core.runtime.jobs.ISchedulingRule getSynchronizeRule(Object element) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (file != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("rules.add(org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().refreshRule(file));");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getValidateStateRule(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.core.runtime.jobs.ISchedulingRule getValidateStateRule(Object element) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("ResourceSetInfo info = getResourceSetInfo(element);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (info != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> files = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (file != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("files.add(file);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().validateEditRule(files.toArray(new org.eclipse.core.resources.IFile[files.size()]));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/Editor.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/Editor.java
new file mode 100644
index 00000000000..ba4be27809c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/Editor.java
@@ -0,0 +1,1321 @@
+/**
+ * Copyright (c) 2006, 2014 Borland Software Corporation, CEA, and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Emilien Perico (Atos Origin) - add code to refactor some classes
+ * Christian W. Damus (CEA) - bug 430648
+ * Christian W. Damus (CEA) - bug 431023
+ */
+package aspects.xpt.editor;
+
+import aspects.xpt.navigator.NavigatorLinkHelper;
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorChildReference;
+import org.eclipse.gmf.codegen.gmfgen.Palette;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.navigator.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class Editor extends xpt.editor.Editor {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private NavigatorLinkHelper xptNavigatorLinkHelper;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence extendsList(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("extends org.eclipse.papyrus.uml.diagram.common.part.UmlGmfDiagramEditor");
+ return _builder;
+ }
+
+ public CharSequence attributes(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static final String ID = \"");
+ String _iD = it.getID();
+ _builder.append(_iD, "\t");
+ _builder.append("\"; ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final String CONTEXT_ID = \"");
+ String _contextID = it.getContextID();
+ _builder.append(_contextID, "");
+ _builder.append("\"; ");
+ CharSequence _nonNLS_1 = this._common.nonNLS();
+ _builder.append(_nonNLS_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.gef.KeyHandler paletteKeyHandler = null;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.swt.events.MouseListener paletteMouseListener = null;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.papyrus.commands.util.OperationHistoryDirtyState dirtyState;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("private org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider documentProvider;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence constructor(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public ");
+ String _className = it.getClassName();
+ _builder.append(_className, "");
+ _builder.append("(org.eclipse.papyrus.infra.core.services.ServicesRegistry servicesRegistry, org.eclipse.gmf.runtime.notation.Diagram diagram) throws org.eclipse.papyrus.infra.core.services.ServiceException{");
+ _builder.newLineIfNotEmpty();
+ _builder.append("super(servicesRegistry, diagram);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// adds a listener to the palette service, which reacts to palette customizations");
+ _builder.newLine();
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().addProviderChangeListener(this);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Share the same editing provider");
+ _builder.newLine();
+ _builder.append("editingDomain = servicesRegistry.getService(org.eclipse.emf.transaction.TransactionalEditingDomain.class);");
+ _builder.newLine();
+ _builder.append("documentProvider = new org.eclipse.papyrus.infra.gmfdiag.common.GmfMultiDiagramDocumentProvider(editingDomain);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("// overrides editing domain created by super constructor");
+ _builder.newLine();
+ _builder.append("setDocumentProvider(documentProvider);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getNavigatorSelection(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.jface.viewers.ISelection getNavigatorSelection() {");
+ _builder.newLine();
+ {
+ GenNavigatorChildReference _diagramTopReference = this._utils_qvto.getDiagramTopReference(it);
+ boolean _notEquals = (!Objects.equal(_diagramTopReference, null));
+ if (_notEquals) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument document = getDiagramDocument();");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ CharSequence _findSelectionBody = this.xptNavigatorLinkHelper.findSelectionBody(it);
+ _builder.append(_findSelectionBody, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createPaletteRoot(final Palette it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.palette.PaletteRoot createPaletteRoot(org.eclipse.gef.palette.PaletteRoot existingPaletteRoot) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gef.palette.PaletteRoot paletteRoot;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (existingPaletteRoot == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("paletteRoot = org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().createPalette(this, getDefaultPaletteContent());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().updatePalette(existingPaletteRoot, this, getDefaultPaletteContent());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("paletteRoot = existingPaletteRoot;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("applyCustomizationsToPalette(paletteRoot);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return paletteRoot;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createPaletteCustomizer(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.ui.palette.PaletteCustomizer createPaletteCustomizer() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteCustomizer(getPreferenceStore());");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence additions(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _createEditingDomain = this.createEditingDomain(it);
+ _builder.append(_createEditingDomain, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _configureDiagramEditDomain = this.configureDiagramEditDomain(it);
+ _builder.append(_configureDiagramEditDomain, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _doSave = this.doSave(it);
+ _builder.append(_doSave, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _dirtyState = this.getDirtyState(it);
+ _builder.append(_dirtyState, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _setUndoContext = this.setUndoContext(it);
+ _builder.append(_setUndoContext, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _isDirty = this.isDirty(it);
+ _builder.append(_isDirty, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _handlePaletteChange = this.handlePaletteChange(it);
+ _builder.append(_handlePaletteChange, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _dispose = this.dispose(it);
+ _builder.append(_dispose, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _paletteViewer = this.getPaletteViewer(it);
+ _builder.append(_paletteViewer, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _constructPaletteViewer = this.constructPaletteViewer(it);
+ _builder.append(_constructPaletteViewer, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _createPaletteviewerProvider = this.createPaletteviewerProvider(it);
+ _builder.append(_createPaletteviewerProvider, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _graphicalViewer = this.getGraphicalViewer(it);
+ _builder.append(_graphicalViewer, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _initializeGraphicalViewer = this.initializeGraphicalViewer(it);
+ _builder.append(_initializeGraphicalViewer, "");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _selectionChanged = this.selectionChanged(it);
+ _builder.append(_selectionChanged, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence handlePaletteChange(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void providerChanged(org.eclipse.gmf.runtime.common.core.service.ProviderChangeEvent event) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// update the palette if the palette service has changed");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().equals(event.getSource())) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().updatePalette(getPaletteViewer().getPaletteRoot(), this,");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("getDefaultPaletteContent());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence constructPaletteViewer(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.ui.palette.PaletteViewer constructPaletteViewer() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteViewer();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence dispose(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void dispose() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// remove palette service listener");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// remove preference listener");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.service.PapyrusPaletteService.getInstance().removeProviderChangeListener(this);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(dirtyState != null) {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("dirtyState.dispose();");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("dirtyState = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.dispose();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getPaletteViewer(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.ui.palette.PaletteViewer getPaletteViewer() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return getEditDomain().getPaletteViewer();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence implementsList(final Iterable<String> it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("implements org.eclipse.gmf.runtime.common.core.service.IProviderChangeListener");
+ _builder.newLine();
+ _builder.append("\t");
+ {
+ boolean _isEmpty = IterableExtensions.isEmpty(it);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _hasElements = false;
+ for(final String string : it) {
+ if (!_hasElements) {
+ _hasElements = true;
+ } else {
+ _builder.appendImmediate(", ", "\t\t");
+ }
+ _builder.append("\t");
+ _builder.append("\t");
+ CharSequence _implementsListEntry = this.implementsListEntry(string);
+ _builder.append(_implementsListEntry, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence implementsListEntry(final String it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append(it, "");
+ return _builder;
+ }
+
+ public CharSequence createPaletteviewerProvider(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerProvider() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getEditDomain().setPaletteRoot(createPaletteRoot(null));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return new org.eclipse.gef.ui.palette.PaletteViewerProvider(getEditDomain()) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* Override to provide the additional behavior for the tools. Will intialize with a");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* PaletteEditPartFactory that has a TrackDragger that understand how to handle the");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* mouseDoubleClick event for shape creation tools. Also will initialize the palette");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* with a defaultTool that is the SelectToolEx that undestands how to handle the enter");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* key which will result in the creation of the shape also.");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideC = this._codeStyle.overrideC(_diagram);
+ _builder.append(_overrideC, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("protected void configurePaletteViewer(org.eclipse.gef.ui.palette.PaletteViewer viewer) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("super.configurePaletteViewer(viewer);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// customize menu...");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("viewer.setContextMenu(new org.eclipse.papyrus.uml.diagram.common.part.PapyrusPaletteContextMenuProvider(viewer));");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("viewer.getKeyHandler().setParent(getPaletteKeyHandler());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("viewer.getControl().addMouseListener(getPaletteMouseListener());");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// Add a transfer drag target listener that is supported on");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// palette template entries whose template is a creation tool.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// This will enable drag and drop of the palette shape creation");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// tools.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("viewer.addDragSourceListener(new org.eclipse.gmf.runtime.diagram.ui.internal.parts.PaletteToolTransferDragSourceListener(viewer));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("viewer.setCustomizer(createPaletteCustomizer());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ CharSequence _overrideC_1 = this._codeStyle.overrideC(_diagram_1);
+ _builder.append(_overrideC_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public org.eclipse.gef.ui.palette.PaletteViewer createPaletteViewer(org.eclipse.swt.widgets.Composite parent) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gef.ui.palette.PaletteViewer pViewer = constructPaletteViewer();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("pViewer.createControl(parent);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("configurePaletteViewer(pViewer);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("hookPaletteViewer(pViewer);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return pViewer;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* @return Palette Key Handler for the palette");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("private org.eclipse.gef.KeyHandler getPaletteKeyHandler() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (paletteKeyHandler == null) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("paletteKeyHandler = new org.eclipse.gef.KeyHandler() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* Processes a <i>key released </i> event. This method is called by the Tool");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* whenever a key is released, and the Tool is in the proper state. Override");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* to support pressing the enter key to create a shape or connection");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* (between two selected shapes)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* @param event");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* the KeyEvent");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* @return <code>true</code> if KeyEvent was handled in some way");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_2.getDiagram();
+ CharSequence _overrideC_2 = this._codeStyle.overrideC(_diagram_2);
+ _builder.append(_overrideC_2, "\t\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("public boolean keyReleased(org.eclipse.swt.events.KeyEvent event) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("if (event.keyCode == org.eclipse.swt.SWT.Selection) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("org.eclipse.gef.Tool tool = getPaletteViewer().getActiveTool().createTool();");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("if (toolSupportsAccessibility(tool)) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t");
+ _builder.append("tool.keyUp(event, getDiagramGraphicalViewer());");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t");
+ _builder.append("// deactivate current selection");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t");
+ _builder.append("getPaletteViewer().setActiveTool(null);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("return super.keyReleased(event);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return paletteKeyHandler;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("* @return Palette Mouse listener for the palette");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("private org.eclipse.swt.events.MouseListener getPaletteMouseListener() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (paletteMouseListener == null) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("paletteMouseListener = new org.eclipse.swt.events.MouseListener() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* Flag to indicate that the current active tool should be cleared after a");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* mouse double-click event.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("private boolean clearActiveTool = false;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* Override to support double-clicking a palette tool entry to create a");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* shape or connection (between two selected shapes).");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("* @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_3 = _editorGen_3.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram_3);
+ _builder.append(_overrideI, "\t\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("org.eclipse.gef.Tool tool = getPaletteViewer().getActiveTool().createTool();");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("if (toolSupportsAccessibility(tool)) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("tool.setViewer(getDiagramGraphicalViewer());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("tool.setEditDomain(getDiagramGraphicalViewer().getEditDomain());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("tool.mouseDoubleClick(e, getDiagramGraphicalViewer());");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("// Current active tool should be deactivated,");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("// but if it is down here it will get");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("// reactivated deep in GEF palette code after");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("// receiving mouse up events.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("clearActiveTool = true;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenDiagram _diagram_4 = _editorGen_4.getDiagram();
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(_diagram_4);
+ _builder.append(_overrideI_1, "\t\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("public void mouseDown(org.eclipse.swt.events.MouseEvent e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("// do nothing");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenDiagram _diagram_5 = _editorGen_5.getDiagram();
+ CharSequence _overrideI_2 = this._codeStyle.overrideI(_diagram_5);
+ _builder.append(_overrideI_2, "\t\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("public void mouseUp(org.eclipse.swt.events.MouseEvent e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("// Deactivate current active tool here if a");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("// double-click was handled.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("if (clearActiveTool) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("getPaletteViewer().setActiveTool(null);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t\t");
+ _builder.append("clearActiveTool = false;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return paletteMouseListener;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence performSaveAs(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected void performSaveAs(org.eclipse.core.runtime.IProgressMonitor progressMonitor) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("// Nothing");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getEditingDomain(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.emf.transaction.TransactionalEditingDomain getEditingDomain() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return editingDomain;");
+ _builder.newLine();
+ _builder.append("}\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createEditingDomain(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Already configured");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return editingDomain;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence configureDiagramEditDomain(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void configureDiagramEditDomain() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.configureDiagramEditDomain();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getDiagramEditDomain().getDiagramCommandStack().addCommandStackListener(new org.eclipse.gef.commands.CommandStackListener() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void commandStackChanged(java.util.EventObject event) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("firePropertyChange( org.eclipse.ui.IEditorPart.PROP_DIRTY);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence doSave(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void doSave(org.eclipse.core.runtime.IProgressMonitor progressMonitor) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// The saving of the resource is done by the CoreMultiDiagramEditor");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getDirtyState().saved();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getDirtyState(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("protected org.eclipse.papyrus.commands.util.OperationHistoryDirtyState getDirtyState() {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("if(dirtyState == null) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("dirtyState = org.eclipse.papyrus.commands.util.OperationHistoryDirtyState.newInstance(getUndoContext(), getOperationHistory());");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return dirtyState;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setUndoContext(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("protected void setUndoContext(org.eclipse.core.commands.operations.IUndoContext context) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("if(dirtyState != null) {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("dirtyState.dispose();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("dirtyState = null;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super.setUndoContext(context);");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence isDirty(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean isDirty() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return getDirtyState().isDirty();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getDocumentProvider(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected final org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocumentProvider getDocumentProvider(org.eclipse.ui.IEditorInput input) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return documentProvider;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence setDocumentProvider(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected final void setDocumentProvider(org.eclipse.ui.IEditorInput input) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// Already set in the constructor");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getGraphicalViewer(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.gef.GraphicalViewer getGraphicalViewer() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.getGraphicalViewer();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initializeGraphicalViewer(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("protected void initializeGraphicalViewer() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.initializeGraphicalViewer();");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Enable Drop");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("getDiagramGraphicalViewer().addDropTargetListener(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("new org.eclipse.papyrus.uml.diagram.common.listeners.DropTargetListener(getDiagramGraphicalViewer(), org.eclipse.jface.util.LocalSelectionTransfer.getTransfer()) {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("protected Object getJavaObject(org.eclipse.swt.dnd.TransferData data) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("// It is usual for the transfer data not to be set because it is available locally");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("return LocalSelectionTransfer.getTransfer().getSelection();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("protected org.eclipse.emf.transaction.TransactionalEditingDomain getTransactionalEditingDomain() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("return getEditingDomain();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence selectionChanged(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("@Override");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("public void selectionChanged(org.eclipse.ui.IWorkbenchPart part, org.eclipse.jface.viewers.ISelection selection) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (getSite().getPage().getActiveEditor() instanceof org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor editor = (org.eclipse.papyrus.infra.core.editor.IMultiDiagramEditor) getSite().getPage().getActiveEditor();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// If not the active editor, ignore selection changed.");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (this.equals(editor.getActiveEditor())) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("updateActions(getSelectionActions());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("super.selectionChanged(part, selection);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("super.selectionChanged(part, selection);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("super.selectionChanged(part, selection);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// from");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// org.eclipse.gmf.runtime.diagram.ui.resources.editor.parts.DiagramDocumentEditor.selectionChanged(IWorkbenchPart,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// ISelection)");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (part == this) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("rebuildStatusLine();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getContextID(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected String getContextID() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return CONTEXT_ID;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getAdapter(final GenEditorView it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _or = false;
+ boolean _hasPropertySheet = this.hasPropertySheet(it);
+ boolean _not = (!_hasPropertySheet);
+ if (_not) {
+ _or = true;
+ } else {
+ boolean _hasNavigator = this.hasNavigator(it);
+ _or = _hasNavigator;
+ }
+ if (_or) {
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("public Object getAdapter(Class type) {");
+ _builder.newLine();
+ {
+ boolean _hasPropertySheet_1 = this.hasPropertySheet(it);
+ boolean _not_1 = (!_hasPropertySheet_1);
+ if (_not_1) {
+ _builder.append("\t");
+ _builder.append("if (type == org.eclipse.ui.views.properties.IPropertySheetPage.class) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ {
+ boolean _hasNavigator_1 = this.hasNavigator(it);
+ if (_hasNavigator_1) {
+ _builder.append("\t");
+ _builder.append("if (type == org.eclipse.ui.part.IShowInTargetList.class) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.ui.part.IShowInTargetList() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("public String[] getShowInTargetIds() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t\t");
+ _builder.append("return new String[] { org.eclipse.ui.navigator.resources.ProjectExplorer.VIEW_ID };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("return super.getAdapter(type);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/InitDiagramFileAction.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/InitDiagramFileAction.java
new file mode 100644
index 00000000000..a9b9bc9202c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/InitDiagramFileAction.java
@@ -0,0 +1,230 @@
+package aspects.xpt.editor;
+
+import aspects.xpt.editor.VisualIDRegistry;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.Common;
+import xpt.Externalizer;
+import xpt.ExternalizerUtils_qvto;
+import xpt.editor.DiagramEditorUtil;
+
+@Singleton
+@SuppressWarnings("all")
+public class InitDiagramFileAction extends xpt.editor.InitDiagramFileAction {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private ExternalizerUtils_qvto _externalizerUtils_qvto;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ @Inject
+ private Externalizer xptExternalizer;
+
+ public CharSequence classBody_PDE(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.ui.IWorkbenchPart targetPart;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.emf.common.util.URI domainModelURI;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void setActivePart(org.eclipse.jface.action.IAction action, org.eclipse.ui.IWorkbenchPart targetPart) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("this.targetPart = targetPart;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void selectionChanged(org.eclipse.jface.action.IAction action, org.eclipse.jface.viewers.ISelection selection) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("domainModelURI = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("action.setEnabled(false);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection == false || selection.isEmpty()) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IFile file =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("(org.eclipse.core.resources.IFile) ((org.eclipse.jface.viewers.IStructuredSelection) selection).getFirstElement();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("domainModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("action.setEnabled(true);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.swt.widgets.Shell getShell() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return targetPart.getSite().getShell();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void run(org.eclipse.jface.action.IAction action) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain();");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ boolean _isSameFileForDiagramAndModel = _editorGen.isSameFileForDiagramAndModel();
+ if (_isSameFileForDiagramAndModel) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.resource.ResourceSet resourceSet = new org.eclipse.emf.ecore.resource.impl.ResourceSetImpl();");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.resource.ResourceSet resourceSet = editingDomain.getResourceSet();");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramRoot = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource resource = resourceSet.getResource(domainModelURI, true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("diagramRoot = resource.getContents().get(0);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (org.eclipse.emf.common.util.WrappedException ex) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_1.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\"Unable to load resource: \" + domainModelURI, ex); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (diagramRoot == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.jface.dialogs.MessageDialog.openError(getShell(), ");
+ _builder.newLine();
+ _builder.append("\t\t ");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ String _i18nKeyForInitDiagramFileResourceErrorDialog = this.i18nKeyForInitDiagramFileResourceErrorDialog();
+ String _titleKey = this._externalizerUtils_qvto.titleKey(_i18nKeyForInitDiagramFileResourceErrorDialog);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_2, _titleKey);
+ _builder.append(_accessorCall, "\t\t ");
+ _builder.append(",");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t ");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ String _i18nKeyForInitDiagramFileResourceErrorDialog_1 = this.i18nKeyForInitDiagramFileResourceErrorDialog();
+ String _messageKey = this._externalizerUtils_qvto.messageKey(_i18nKeyForInitDiagramFileResourceErrorDialog_1);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_3, _messageKey);
+ _builder.append(_accessorCall_1, "\t\t ");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.jface.wizard.Wizard wizard = new ");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_4.getDiagram();
+ String _newDiagramFileWizardQualifiedClassName = _diagram.getNewDiagramFileWizardQualifiedClassName();
+ _builder.append(_newDiagramFileWizardQualifiedClassName, "\t");
+ _builder.append("(domainModelURI, diagramRoot, editingDomain);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("wizard.setWindowTitle(org.eclipse.osgi.util.NLS.bind(");
+ _builder.newLine();
+ _builder.append("\t\t\t ");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ String _i18nKeyForInitDiagramFileWizardTitle = this.i18nKeyForInitDiagramFileWizardTitle();
+ CharSequence _accessorCall_2 = this.xptExternalizer.accessorCall(_editorGen_5, _i18nKeyForInitDiagramFileWizardTitle);
+ _builder.append(_accessorCall_2, "\t\t\t ");
+ _builder.append(",");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t ");
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_6.getDiagram();
+ CharSequence _modelID = VisualIDRegistry.modelID(_diagram_1);
+ _builder.append(_modelID, "\t\t\t ");
+ _builder.append("));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_7.getDiagram();
+ CharSequence _qualifiedClassName_1 = this.xptDiagramEditorUtil.qualifiedClassName(_diagram_2);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(".runWizard(getShell(), wizard, \"InitDiagramFile\"); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(
+ 1);
+ _builder.append(_nonNLS_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/NewDiagramFileWizard.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/NewDiagramFileWizard.java
new file mode 100644
index 00000000000..427dce400d2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/NewDiagramFileWizard.java
@@ -0,0 +1,681 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import aspects.xpt.editor.DiagramEditorUtil;
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Externalizer;
+import xpt.ExternalizerUtils_qvto;
+import xpt.editor.DiagramContentInitializer;
+import xpt.editor.ModelElementSelectionPage;
+import xpt.editor.VisualIDRegistry;
+
+@Singleton
+@SuppressWarnings("all")
+public class NewDiagramFileWizard extends xpt.editor.NewDiagramFileWizard {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ @Extension
+ private ExternalizerUtils_qvto _externalizerUtils_qvto;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ @Inject
+ private Externalizer xptExternalizer;
+
+ @Inject
+ private DiagramContentInitializer xptDiagramContentInitializer;
+
+ @Inject
+ private ModelElementSelectionPage xptModelElementSelectionPage;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence i18nValues(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ String _i18nKeyForNewDiagramFileWizardCreationPage = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _nameKey = this._externalizerUtils_qvto.nameKey(_i18nKeyForNewDiagramFileWizardCreationPage);
+ CharSequence _messageEntry = this.xptExternalizer.messageEntry(_nameKey, "Initialize new diagram file");
+ _builder.append(_messageEntry, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardCreationPage_1 = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _titleKey = this._externalizerUtils_qvto.titleKey(_i18nKeyForNewDiagramFileWizardCreationPage_1);
+ CharSequence _messageEntry_1 = this.xptExternalizer.messageEntry(_titleKey, "Diagram file");
+ _builder.append(_messageEntry_1, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardCreationPage_2 = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _descriptionKey = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForNewDiagramFileWizardCreationPage_2);
+ CharSequence _messageEntry_2 = this.xptExternalizer.messageEntry(_descriptionKey,
+ "Create new diagram based on {0} model content");
+ _builder.append(_messageEntry_2, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _nameKey_1 = this._externalizerUtils_qvto.nameKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage);
+ CharSequence _messageEntry_3 = this.xptExternalizer.messageEntry(_nameKey_1,
+ "Select diagram root element");
+ _builder.append(_messageEntry_3, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage_1 = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _titleKey_1 = this._externalizerUtils_qvto.titleKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage_1);
+ CharSequence _messageEntry_4 = this.xptExternalizer.messageEntry(_titleKey_1, "Diagram root element");
+ _builder.append(_messageEntry_4, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage_2 = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _descriptionKey_1 = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage_2);
+ CharSequence _messageEntry_5 = this.xptExternalizer.messageEntry(_descriptionKey_1,
+ "Select semantic model element to be depicted on diagram");
+ _builder.append(_messageEntry_5, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle = this.i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle(it);
+ CharSequence _messageEntry_6 = this.xptExternalizer.messageEntry(_i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle,
+ "Select diagram root element:");
+ _builder.append(_messageEntry_6, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage = this.i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage(it);
+ CharSequence _messageEntry_7 = this.xptExternalizer.messageEntry(_i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage,
+ "Diagram root element is not selected");
+ _builder.append(_messageEntry_7, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage = this.i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage(it);
+ CharSequence _messageEntry_8 = this.xptExternalizer.messageEntry(_i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage,
+ "Invalid diagram root element is selected");
+ _builder.append(_messageEntry_8, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardInitDiagramCommand = this.i18nKeyForNewDiagramFileWizardInitDiagramCommand(it);
+ CharSequence _messageEntry_9 = this.xptExternalizer.messageEntry(_i18nKeyForNewDiagramFileWizardInitDiagramCommand, "Initializing diagram contents");
+ _builder.append(_messageEntry_9, "");
+ _builder.newLineIfNotEmpty();
+ String _i18nKeyForNewDiagramFileWizardIncorrectRootError = this.i18nKeyForNewDiagramFileWizardIncorrectRootError(it);
+ CharSequence _messageEntry_10 = this.xptExternalizer.messageEntry(_i18nKeyForNewDiagramFileWizardIncorrectRootError,
+ "Incorrect model object stored as a root resource object");
+ _builder.append(_messageEntry_10, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence NewDiagramFileWizard(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" extends org.eclipse.jface.wizard.Wizard {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private ");
+ CharSequence _creationPage = this.creationPage(it);
+ _builder.append(_creationPage, "\t");
+ _builder.append(" myFileCreationPage;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private ");
+ CharSequence _qualifiedClassName = this.xptModelElementSelectionPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(" diagramRootElementSelectionPage;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private org.eclipse.emf.transaction.TransactionalEditingDomain myEditingDomain;");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ CharSequence _className_1 = this.className(it);
+ _builder.append(_className_1, "\t");
+ _builder.append("(org.eclipse.emf.common.util.URI domainModelURI,");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject diagramRoot,");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence __assert = this._common._assert("domainModelURI != null : \"Domain model uri must be specified\"");
+ _builder.append(__assert, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ CharSequence __assert_1 = this._common._assert("diagramRoot != null : \"Doagram root element must be specified\"");
+ _builder.append(__assert_1, "\t ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ CharSequence __assert_2 = this._common._assert("editingDomain != null : \"Editing domain must be specified\"");
+ _builder.append(__assert_2, "\t ");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("myFileCreationPage = new ");
+ CharSequence _creationPage_1 = this.creationPage(it);
+ _builder.append(_creationPage_1, "\t\t");
+ _builder.append("(");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardCreationPage = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _nameKey = this._externalizerUtils_qvto.nameKey(_i18nKeyForNewDiagramFileWizardCreationPage);
+ CharSequence _accessorCall = this.xptExternalizer.accessorCall(_editorGen_1, _nameKey);
+ _builder.append(_accessorCall, "\t\t");
+ _builder.append(", org.eclipse.jface.viewers.StructuredSelection.EMPTY);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("myFileCreationPage.setTitle(");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardCreationPage_1 = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _titleKey = this._externalizerUtils_qvto.titleKey(_i18nKeyForNewDiagramFileWizardCreationPage_1);
+ CharSequence _accessorCall_1 = this.xptExternalizer.accessorCall(_editorGen_2, _titleKey);
+ _builder.append(_accessorCall_1, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("myFileCreationPage.setDescription(org.eclipse.osgi.util.NLS.bind(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardCreationPage_2 = this.i18nKeyForNewDiagramFileWizardCreationPage(it);
+ String _descriptionKey = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForNewDiagramFileWizardCreationPage_2);
+ CharSequence _accessorCall_2 = this.xptExternalizer.accessorCall(_editorGen_3, _descriptionKey);
+ _builder.append(_accessorCall_2, "\t\t\t\t");
+ _builder.append(", ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ CharSequence _modelID = aspects.xpt.editor.VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t\t\t\t");
+ _builder.append("));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.runtime.IPath filePath;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("String fileName = org.eclipse.emf.common.util.URI.decode(domainModelURI.trimFileExtension().lastSegment());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (domainModelURI.isPlatformResource()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("filePath = new org.eclipse.core.runtime.Path(domainModelURI.trimSegments(1).toPlatformString(true));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else if (domainModelURI.isFile()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("filePath = new org.eclipse.core.runtime.Path(domainModelURI.trimSegments(1).toFileString());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// TODO : use some default path");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("throw new IllegalArgumentException(\"Unsupported URI: \" + domainModelURI); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("myFileCreationPage.setContainerFullPath(filePath);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("myFileCreationPage.setFileName(");
+ CharSequence _qualifiedClassName_1 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t");
+ _builder.append(".getUniqueFileName(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("filePath, fileName, \"");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ String _diagramFileExtension = _editorGen_4.getDiagramFileExtension();
+ _builder.append(_diagramFileExtension, "\t\t\t\t");
+ _builder.append("\")); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_1, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _nameKey_1 = this._externalizerUtils_qvto.nameKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage);
+ CharSequence _accessorCall_3 = this.xptExternalizer.accessorCall(_editorGen_5, _nameKey_1);
+ _builder.append(_accessorCall_3, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramRootElementSelectionPage.setTitle(");
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage_1 = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _titleKey_1 = this._externalizerUtils_qvto.titleKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage_1);
+ CharSequence _accessorCall_4 = this.xptExternalizer.accessorCall(_editorGen_6, _titleKey_1);
+ _builder.append(_accessorCall_4, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramRootElementSelectionPage.setDescription(");
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPage_2 = this.i18nKeyForNewDiagramFileWizardRootSelectionPage(it);
+ String _descriptionKey_1 = this._externalizerUtils_qvto.descriptionKey(_i18nKeyForNewDiagramFileWizardRootSelectionPage_2);
+ CharSequence _accessorCall_5 = this.xptExternalizer.accessorCall(_editorGen_7, _descriptionKey_1);
+ _builder.append(_accessorCall_5, "\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramRootElementSelectionPage.setModelElement(diagramRoot);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t \t");
+ _builder.append("myEditingDomain = editingDomain;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void addPages() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("addPage(myFileCreationPage);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("addPage(diagramRootElementSelectionPage);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean performFinish() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.LinkedList<org.eclipse.core.resources.IFile> affectedFiles = new java.util.LinkedList<org.eclipse.core.resources.IFile>(); ");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ GenApplication _application = _editorGen_8.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ if (_equals) {
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.resources.IFile diagramFile = myFileCreationPage.createNewFile();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _callSetCharset = this.xptDiagramEditorUtil.callSetCharset(it, "diagramFile");
+ _builder.append(_callSetCharset, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("affectedFiles.add(diagramFile);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);");
+ _builder.newLine();
+ } else {
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.runtime.IPath diagramModelPath = myFileCreationPage.getContainerFullPath().append(myFileCreationPage.getFileName());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createFileURI(diagramModelPath.toString());");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.ResourceSet resourceSet = myEditingDomain.getResourceSet();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final org.eclipse.emf.ecore.resource.Resource diagramResource = resourceSet.createResource(diagramModelURI);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand command =");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("myEditingDomain, ");
+ GenEditorGenerator _editorGen_9 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardInitDiagramCommand = this.i18nKeyForNewDiagramFileWizardInitDiagramCommand(it);
+ CharSequence _accessorCall_6 = this.xptExternalizer.accessorCall(_editorGen_9, _i18nKeyForNewDiagramFileWizardInitDiagramCommand);
+ _builder.append(_accessorCall_6, "\t\t\t\t");
+ _builder.append(", affectedFiles) {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("throws org.eclipse.core.commands.ExecutionException {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("int diagramVID = ");
+ CharSequence _diagramVisualIDMethodCall = this.xptVisualIDRegistry.getDiagramVisualIDMethodCall(it);
+ _builder.append(_diagramVisualIDMethodCall, "\t\t\t\t");
+ _builder.append("(diagramRootElementSelectionPage.getModelElement());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (diagramVID != ");
+ CharSequence _visualID = aspects.xpt.editor.VisualIDRegistry.visualID(it);
+ _builder.append(_visualID, "\t\t\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newErrorCommandResult(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_10 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardIncorrectRootError = this.i18nKeyForNewDiagramFileWizardIncorrectRootError(it);
+ CharSequence _accessorCall_7 = this.xptExternalizer.accessorCall(_editorGen_10, _i18nKeyForNewDiagramFileWizardIncorrectRootError);
+ _builder.append(_accessorCall_7, "\t\t\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram diagram =");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.services.ViewService.createDiagram(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("diagramRootElementSelectionPage.getModelElement(), ");
+ CharSequence _modelID_1 = aspects.xpt.editor.VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_1, "\t\t\t\t\t\t");
+ _builder.append(",");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t");
+ GenEditorGenerator _editorGen_11 = it.getEditorGen();
+ CharSequence _preferenceHintAccess = this.xptActivator.preferenceHintAccess(_editorGen_11);
+ _builder.append(_preferenceHintAccess, "\t\t\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("diagramResource.getContents().add(diagram);");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_12 = it.getEditorGen();
+ boolean _isSameFileForDiagramAndModel = _editorGen_12.isSameFileForDiagramAndModel();
+ if (_isSameFileForDiagramAndModel) {
+ _builder.append("\t\t\t\t");
+ _builder.append("diagramResource.getContents().add(diagram.getElement());");
+ _builder.newLine();
+ }
+ }
+ {
+ boolean _isSynchronized = it.isSynchronized();
+ boolean _not = (!_isSynchronized);
+ if (_not) {
+ _builder.append("\t\t\t\t");
+ _builder.append("new ");
+ CharSequence _qualifiedClassName_2 = this.xptDiagramContentInitializer.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t\t\t");
+ _builder.append("().initDiagramContent(diagram);\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.core.commands.operations.OperationHistoryFactory.getOperationHistory().execute(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("command, new org.eclipse.core.runtime.NullProgressMonitor(), null);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("diagramResource.save(");
+ CharSequence _callGetSaveOptions = this.xptDiagramEditorUtil.callGetSaveOptions(it);
+ _builder.append(_callGetSaveOptions, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ CharSequence _qualifiedClassName_3 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_3, "\t\t\t");
+ _builder.append(".openDiagram(diagramResource);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.core.commands.ExecutionException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_13 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_13.getPlugin();
+ CharSequence _qualifiedClassName_4 = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName_4, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"Unable to create model and diagram\", e); ");
+ CharSequence _nonNLS_2 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_2, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (java.io.IOException ex) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_14 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_14.getPlugin();
+ CharSequence _qualifiedClassName_5 = this.xptActivator.qualifiedClassName(_plugin_1);
+ _builder.append(_qualifiedClassName_5, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"Save operation failed for: \" + diagramModelURI, ex); ");
+ CharSequence _nonNLS_3 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_3, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.ui.PartInitException ex) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_15 = it.getEditorGen();
+ GenPlugin _plugin_2 = _editorGen_15.getPlugin();
+ CharSequence _qualifiedClassName_6 = this.xptActivator.qualifiedClassName(_plugin_2);
+ _builder.append(_qualifiedClassName_6, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"Unable to open editor\", ex); ");
+ CharSequence _nonNLS_4 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_4, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment_1 = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private static class DiagramRootElementSelectionPage extends ");
+ CharSequence _qualifiedClassName_7 = this.xptModelElementSelectionPage.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_7, "\t");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected DiagramRootElementSelectionPage(String pageName) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("super(pageName);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_7 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_7, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected String getSelectionTitle() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return ");
+ GenEditorGenerator _editorGen_16 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle = this.i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle(it);
+ CharSequence _accessorCall_8 = this.xptExternalizer.accessorCall(_editorGen_16, _i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle);
+ _builder.append(_accessorCall_8, "\t\t\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_8 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_8, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected boolean validatePage() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (getModelElement() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("setErrorMessage(");
+ GenEditorGenerator _editorGen_17 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage = this.i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage(it);
+ CharSequence _accessorCall_9 = this.xptExternalizer.accessorCall(_editorGen_17, _i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage);
+ _builder.append(_accessorCall_9, "\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("boolean result = org.eclipse.gmf.runtime.diagram.core.services.ViewService.getInstance().provides(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(getModelElement()),");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ CharSequence _modelID_2 = aspects.xpt.editor.VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_2, "\t\t\t\t\t");
+ _builder.append(", ");
+ GenEditorGenerator _editorGen_18 = it.getEditorGen();
+ CharSequence _preferenceHintAccess_1 = this.xptActivator.preferenceHintAccess(_editorGen_18);
+ _builder.append(_preferenceHintAccess_1, "\t\t\t\t\t");
+ _builder.append("));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("setErrorMessage(result ? null : ");
+ GenEditorGenerator _editorGen_19 = it.getEditorGen();
+ String _i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage = this.i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage(it);
+ CharSequence _accessorCall_10 = this.xptExternalizer.accessorCall(_editorGen_19, _i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage);
+ _builder.append(_accessorCall_10, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetInfo.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetInfo.java
new file mode 100644
index 00000000000..48b47c7b11b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetInfo.java
@@ -0,0 +1,147 @@
+package aspects.xpt.editor;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ResourceSetInfo extends xpt.editor.ResourceSetInfo {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence handleResourceChangedSD(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public boolean handleResourceChanged(final org.eclipse.emf.ecore.resource.Resource resource) {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _updateSynchStateSD = this.updateSynchStateSD(it);
+ _builder.append(_updateSynchStateSD, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("handleElementChanged(ResourceSetInfo.this, resource, null);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence handleResourceDeletedSD(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public boolean handleResourceDeleted(org.eclipse.emf.ecore.resource.Resource resource) {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _updateSynchStateSD = this.updateSynchStateSD(it);
+ _builder.append(_updateSynchStateSD, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("fireElementDeleted(ResourceSetInfo.this.getEditorInput());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence handleResourceMovedSD(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public boolean handleResourceMoved(org.eclipse.emf.ecore.resource.Resource resource, final org.eclipse.emf.common.util.URI newURI) {");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _updateSynchStateSD = this.updateSynchStateSD(it);
+ _builder.append(_updateSynchStateSD, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (myDocument.getDiagram().eResource() == resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("handleElementMoved(ResourceSetInfo.this.getEditorInput(), newURI);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("handleResourceDeleted(resource);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetModificationListener.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetModificationListener.java
new file mode 100644
index 00000000000..1f414a7d996
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ResourceSetModificationListener.java
@@ -0,0 +1,153 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class ResourceSetModificationListener extends xpt.editor.ResourceSetModificationListener {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence notifyChanged(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.append("\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void notifyChanged(org.eclipse.emf.common.notify.Notification notification) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (notification.getNotifier() instanceof org.eclipse.emf.ecore.resource.ResourceSet) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("super.notifyChanged(notification);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (!notification.isTouch() && myModifiedFilter.matches(notification)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (notification.getNotifier() instanceof org.eclipse.emf.ecore.resource.Resource) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource resource = (org.eclipse.emf.ecore.resource.Resource) notification.getNotifier();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (resource.isLoaded()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("boolean modified = false;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myInfo.getLoadedResourcesIterator(); it.hasNext() && !modified;) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (nextResource.isLoaded()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("modified = nextResource.isModified();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("boolean dirtyStateChanged = false;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("synchronized (myInfo) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (modified != myInfo.fCanBeSaved) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("myInfo.fCanBeSaved = modified;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("dirtyStateChanged = true;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(null, _application);
+ if (_equals) {
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (!resource.isModified()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("\t");
+ _builder.append("myInfo.setSynchronized(resource);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (dirtyStateChanged) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("fireElementDirtyStateChanged(myInfo.getEditorInput(), modified);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("if (!modified) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t\t");
+ _builder.append("myInfo.setModificationStamp(computeModificationStamp(myInfo));");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ValidateAction.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ValidateAction.java
new file mode 100644
index 00000000000..8cc0b37ff72
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/ValidateAction.java
@@ -0,0 +1,568 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.editor.DiagramEditorUtil;
+import xpt.providers.ValidationProvider;
+
+@Singleton
+@SuppressWarnings("all")
+public class ValidateAction extends xpt.editor.ValidateAction {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ private DiagramEditorUtil xptDiagramEditorUtil;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private ValidationProvider xptValidationProvider;
+
+ public CharSequence runNonUIValidation(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static void runNonUIValidation(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.widgets.Shell shell = org.eclipse.swt.widgets.Display.getCurrent().getActiveShell();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (shell == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("shell = new org.eclipse.swt.widgets.Shell();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart diagramEditPart =");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.OffscreenEditPartFactory.getInstance().createDiagramEditPart(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("view.getDiagram(),shell);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("runValidation(diagramEditPart, view);");
+ _builder.newLine();
+ _builder.append("}\t\t");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createMarkersForStatus(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static void createMarkers(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _builder.append("org.eclipse.core.resources.IFile");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ } else {
+ _builder.append("org.eclipse.gmf.runtime.notation.View");
+ }
+ }
+ _builder.append(" target,");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.core.runtime.IStatus validationStatus,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart diagramEditPart) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (validationStatus.isOK()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.core.runtime.IStatus rootStatus = validationStatus;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List allStatuses = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _qualifiedClassName = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(".LazyElement2ViewMap element2ViewMap = new ");
+ CharSequence _qualifiedClassName_1 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(".LazyElement2ViewMap(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("diagramEditPart.getDiagramView(),");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("collectTargetElements(rootStatus, new java.util.HashSet<org.eclipse.emf.ecore.EObject>(), allStatuses));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator it = allStatuses.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.validation.model.IConstraintStatus nextStatus =");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("(org.eclipse.emf.validation.model.IConstraintStatus) it.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = ");
+ CharSequence _qualifiedClassName_2 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(".findView(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("diagramEditPart, nextStatus.getTarget(), element2ViewMap);\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view), ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil.getQualifiedName(nextStatus.getTarget(), true), ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("nextStatus.getMessage(), nextStatus.getSeverity());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createMarkersForDiagnostic(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static void createMarkers(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _builder.append("org.eclipse.core.resources.IFile");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ } else {
+ _builder.append("org.eclipse.gmf.runtime.notation.View");
+ }
+ }
+ _builder.append(" target,");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.common.util.Diagnostic emfValidationStatus,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart diagramEditPart) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (emfValidationStatus.getSeverity() == org.eclipse.emf.common.util.Diagnostic.OK) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.emf.common.util.Diagnostic rootStatus = emfValidationStatus;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<org.eclipse.emf.common.util.Diagnostic> allDiagnostics = new java.util.ArrayList<org.eclipse.emf.common.util.Diagnostic>();");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _qualifiedClassName = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(".LazyElement2ViewMap element2ViewMap =");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("new ");
+ CharSequence _qualifiedClassName_1 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(".LazyElement2ViewMap(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramEditPart.getDiagramView(),");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("collectTargetElements(rootStatus, new java.util.HashSet<org.eclipse.emf.ecore.EObject>(), allDiagnostics));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.common.util.Diagnostic> it = emfValidationStatus.getChildren().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.common.util.Diagnostic nextDiagnostic = it.next();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<?> data = nextDiagnostic.getData();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (data != null && !data.isEmpty() && data.get(0) instanceof org.eclipse.emf.ecore.EObject) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject element = (org.eclipse.emf.ecore.EObject) data.get(0);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = ");
+ CharSequence _qualifiedClassName_2 = this.xptDiagramEditorUtil.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(".findView(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("diagramEditPart, element, element2ViewMap);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("addMarker(diagramEditPart.getViewer(), target, view.eResource().getURIFragment(view),");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil.getQualifiedName(element, true),");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("nextDiagnostic.getMessage(), diagnosticToStatusSeverity(nextDiagnostic.getSeverity()));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence collectTargetElementsFromStatus(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static java.util.Set<org.eclipse.emf.ecore.EObject> collectTargetElements(org.eclipse.core.runtime.IStatus status,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.Set<org.eclipse.emf.ecore.EObject> targetElementCollector, java.util.List<org.eclipse.emf.validation.model.IConstraintStatus> allConstraintStatuses) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (status instanceof org.eclipse.emf.validation.model.IConstraintStatus) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("targetElementCollector.add(((org.eclipse.emf.validation.model.IConstraintStatus) status).getTarget());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("allConstraintStatuses.add((org.eclipse.emf.validation.model.IConstraintStatus)status);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (status.isMultiStatus()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.IStatus[] children = status.getChildren();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (int i = 0; i < children.length; i++) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("collectTargetElements(children[i], targetElementCollector, allConstraintStatuses);\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return targetElementCollector;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence collectTargetElementsFromDiagnostic(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static java.util.Set<org.eclipse.emf.ecore.EObject> collectTargetElements(org.eclipse.emf.common.util.Diagnostic diagnostic,");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.Set<org.eclipse.emf.ecore.EObject> targetElementCollector, java.util.List<org.eclipse.emf.common.util.Diagnostic> allDiagnostics) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<?> data = diagnostic.getData();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject target = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (data != null && !data.isEmpty() && data.get(0) instanceof org.eclipse.emf.ecore.EObject) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("target = (org.eclipse.emf.ecore.EObject) data.get(0);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("targetElementCollector.add(target);\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("allDiagnostics.add(diagnostic);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (diagnostic.getChildren() != null && !diagnostic.getChildren().isEmpty()) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.common.util.Diagnostic> it = diagnostic.getChildren().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("collectTargetElements(it.next(), targetElementCollector, allDiagnostics);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return targetElementCollector;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence run(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.ui.IWorkbenchPart workbenchPart = page.getActivePart();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (workbenchPart instanceof org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("final org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart part =\t(org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart) workbenchPart;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _builder.append("\t\t\t");
+ _builder.append("new org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation(");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("new org.eclipse.jface.operation.IRunnableWithProgress() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("public void run(org.eclipse.core.runtime.IProgressMonitor monitor)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("throws InterruptedException, java.lang.reflect.InvocationTargetException {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("runValidation(part.getDiagramEditPart(), part.getDiagram());");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenApplication _application_1 = _editorGen_1.getApplication();
+ boolean _equals_1 = Objects.equal(_application_1, null);
+ if (_equals_1) {
+ _builder.append("\t\t\t");
+ _builder.append(")");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append(".run(new org.eclipse.core.runtime.NullProgressMonitor());\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (Exception e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_2.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(".getInstance().logError(\"Validation action failed\", e); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence runValidationWithEP(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static void runValidation(org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart diagramEditPart, org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart fpart = diagramEditPart;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.gmf.runtime.notation.View fview = view;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain txDomain = org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(view);");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _qualifiedClassName = this.xptValidationProvider.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append(".runWithConstraints(txDomain, new Runnable() {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("validate(fpart, fview);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("});");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence runEMFValidator(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static org.eclipse.emf.common.util.Diagnostic runEMFValidator(");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View target) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (target.isSetElement() && target.getElement() != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.emf.ecore.util.Diagnostician() {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _overrideC = this._codeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public String getObjectLabel(org.eclipse.emf.ecore.EObject eObject) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil.getQualifiedName(eObject, true);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}.validate(target.getElement());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.emf.common.util.Diagnostic.OK_INSTANCE;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/VisualIDRegistry.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/VisualIDRegistry.java
new file mode 100644
index 00000000000..7e19c3163a1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/VisualIDRegistry.java
@@ -0,0 +1,534 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #372479, #386838
+ */
+package aspects.xpt.editor;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenConstraint;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionInterpreter;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderBase;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenJavaExpressionProvider;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.ValueExpression;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.expressions.getExpression;
+
+@Singleton
+@SuppressWarnings("all")
+public class VisualIDRegistry extends xpt.editor.VisualIDRegistry {
+ @Inject
+ @Extension
+ private MetaModel _metaModel;
+
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private CodeStyle xptCodeStyle;
+
+ @Inject
+ private getExpression xptGetExpression;
+
+ public CharSequence getDiagramVisualID(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static int ");
+ CharSequence _diagramVisualIDMethodName = this.getDiagramVisualIDMethodName(it);
+ _builder.append(_diagramVisualIDMethodName, "");
+ _builder.append("(org.eclipse.emf.ecore.EObject domainElement) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("if (domainElement == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _unrecognizedVID = this.unrecognizedVID(it);
+ _builder.append(_unrecognizedVID, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return ");
+ int _visualID = it.getVisualID();
+ _builder.append(_visualID, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ /**
+ * Support for extra contstraints to check about model element.
+ * Includes expression fields for interpreted constrains (like ocl or regexp).
+ * For each model element that has an associated constraint, there's a method is<DomainElement>_<UID>()
+ * that performs extra specification as defined by value expression
+ *
+ * FIXME don't use static fields, replace with instance/separate cache (e.g. accessible from Activator)
+ */
+ public CharSequence constraintMethods(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders = _editorGen.getExpressionProviders();
+ boolean _notEquals = (!Objects.equal(null, _expressionProviders));
+ if (_notEquals) {
+ {
+ EList<GenTopLevelNode> _topLevelNodes = it.getTopLevelNodes();
+ final Function1<GenTopLevelNode, Boolean> _function = new Function1<GenTopLevelNode, Boolean>() {
+ public Boolean apply(final GenTopLevelNode n) {
+ boolean _isSansDomain = n.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ Iterable<GenTopLevelNode> _filter = IterableExtensions.<GenTopLevelNode>filter(_topLevelNodes, _function);
+ final Function1<GenTopLevelNode, Boolean> _function_1 = new Function1<GenTopLevelNode, Boolean>() {
+ public Boolean apply(final GenTopLevelNode n) {
+ TypeModelFacet _modelFacet = n.getModelFacet();
+ GenConstraint _modelElementSelector = _modelFacet.getModelElementSelector();
+ return Boolean.valueOf((!Objects.equal(_modelElementSelector, null)));
+ }
+ };
+ Iterable<GenTopLevelNode> _filter_1 = IterableExtensions.<GenTopLevelNode>filter(_filter, _function_1);
+ for(final GenTopLevelNode topNode : _filter_1) {
+ CharSequence _constraintMethod = this.constraintMethod(topNode);
+ _builder.append(_constraintMethod, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ final Function1<GenChildNode, Boolean> _function_2 = new Function1<GenChildNode, Boolean>() {
+ public Boolean apply(final GenChildNode n) {
+ boolean _isSansDomain = n.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ Iterable<GenChildNode> _filter_2 = IterableExtensions.<GenChildNode>filter(_childNodes, _function_2);
+ final Function1<GenChildNode, Boolean> _function_3 = new Function1<GenChildNode, Boolean>() {
+ public Boolean apply(final GenChildNode n) {
+ TypeModelFacet _modelFacet = n.getModelFacet();
+ GenConstraint _modelElementSelector = _modelFacet.getModelElementSelector();
+ return Boolean.valueOf((!Objects.equal(_modelElementSelector, null)));
+ }
+ };
+ Iterable<GenChildNode> _filter_3 = IterableExtensions.<GenChildNode>filter(_filter_2, _function_3);
+ for(final GenChildNode childNode : _filter_3) {
+ CharSequence _constraintMethod_1 = this.constraintMethod(childNode);
+ _builder.append(_constraintMethod_1, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLink> _links = it.getLinks();
+ final Function1<GenLink, Boolean> _function_4 = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink n) {
+ boolean _isSansDomain = n.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ Iterable<GenLink> _filter_4 = IterableExtensions.<GenLink>filter(_links, _function_4);
+ for(final GenLink link : _filter_4) {
+ LinkModelFacet _modelFacet = link.getModelFacet();
+ CharSequence _constraintMethod_2 = this.constraintMethod(_modelFacet, link);
+ _builder.append(_constraintMethod_2, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence checkDomainElementConstraints(final TypeModelFacet it, final GenCommonBase commonBase) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenConstraint _modelElementSelector = it.getModelElementSelector();
+ boolean _notEquals = (!Objects.equal(null, _modelElementSelector));
+ if (_notEquals) {
+ {
+ boolean _or = false;
+ if ((commonBase instanceof GenLink)) {
+ _or = true;
+ } else {
+ _or = (!(it.getModelElementSelector().getProvider() instanceof GenJavaExpressionProvider));
+ }
+ if (_or) {
+ _builder.append("&& ");
+ CharSequence _domainElementConstraintMethodName = this.domainElementConstraintMethodName(commonBase);
+ _builder.append(_domainElementConstraintMethodName, "");
+ _builder.append("(");
+ GenClass _metaClass = it.getMetaClass();
+ CharSequence _CastEObject = this._metaModel.CastEObject(_metaClass, "domainElement");
+ _builder.append(_CastEObject, "");
+ _builder.append(")");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("&& ");
+ CharSequence _domainElementConstraintMethodName_1 = this.domainElementConstraintMethodName(commonBase);
+ _builder.append(_domainElementConstraintMethodName_1, "");
+ _builder.append("(containerView, ");
+ GenClass _metaClass_1 = it.getMetaClass();
+ CharSequence _CastEObject_1 = this._metaModel.CastEObject(_metaClass_1, "domainElement");
+ _builder.append(_CastEObject_1, "");
+ _builder.append(")");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _domainElementConstraintMethod(final GenJavaExpressionProvider it, final GenCommonBase diagramElement, final ValueExpression expression, final GenClass context) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ {
+ if ((diagramElement instanceof GenLink)) {
+ _builder.append("private static boolean ");
+ CharSequence _domainElementConstraintMethodName = this.domainElementConstraintMethodName(diagramElement);
+ _builder.append(_domainElementConstraintMethodName, "");
+ _builder.append("(");
+ CharSequence _QualifiedClassName = this._metaModel.QualifiedClassName(context);
+ _builder.append(_QualifiedClassName, "");
+ _builder.append(" domainElement) {");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("private static boolean ");
+ CharSequence _domainElementConstraintMethodName_1 = this.domainElementConstraintMethodName(diagramElement);
+ _builder.append(_domainElementConstraintMethodName_1, "");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View containerView, ");
+ CharSequence _QualifiedClassName_1 = this._metaModel.QualifiedClassName(context);
+ _builder.append(_QualifiedClassName_1, "");
+ _builder.append(" domainElement) {");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ boolean _and = false;
+ boolean _isInjectExpressionBody = it.isInjectExpressionBody();
+ if (!_isInjectExpressionBody) {
+ _and = false;
+ } else {
+ boolean _and_1 = false;
+ String _body = expression.getBody();
+ boolean _notEquals = (!Objects.equal(_body, null));
+ if (!_notEquals) {
+ _and_1 = false;
+ } else {
+ String _body_1 = expression.getBody();
+ int _length = _body_1.length();
+ boolean _notEquals_1 = (_length != 0);
+ _and_1 = _notEquals_1;
+ }
+ _and = _and_1;
+ }
+ if (_and) {
+ String _body_2 = expression.getBody();
+ _builder.append(_body_2, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ boolean _or = false;
+ boolean _isThrowException = it.isThrowException();
+ if (_isThrowException) {
+ _or = true;
+ } else {
+ boolean _and_2 = false;
+ boolean _isInjectExpressionBody_1 = it.isInjectExpressionBody();
+ if (!_isInjectExpressionBody_1) {
+ _and_2 = false;
+ } else {
+ boolean _or_1 = false;
+ String _body_3 = expression.getBody();
+ boolean _equals = Objects.equal(_body_3, null);
+ if (_equals) {
+ _or_1 = true;
+ } else {
+ String _body_4 = expression.getBody();
+ int _length_1 = _body_4.length();
+ boolean _equals_1 = (_length_1 == 0);
+ _or_1 = _equals_1;
+ }
+ _and_2 = _or_1;
+ }
+ _or = _and_2;
+ }
+ if (_or) {
+ _builder.append("// FIXME: implement this method ");
+ _builder.newLine();
+ _builder.append("// Ensure that you remove @generated or mark it @generated NOT");
+ _builder.newLine();
+ _builder.append("throw new java.lang.UnsupportedOperationException(\"No java implementation provided in \'");
+ CharSequence _domainElementConstraintMethodName_2 = this.domainElementConstraintMethodName(diagramElement);
+ _builder.append(_domainElementConstraintMethodName_2, "");
+ _builder.append("\' operation\");");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("return false;");
+ _builder.newLine();
+ }
+ }
+ }
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence runtimeTypedInstance(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final org.eclipse.gmf.tooling.runtime.structure.DiagramStructure ");
+ CharSequence _runtimeTypedInstanceName = this.runtimeTypedInstanceName(it);
+ _builder.append(_runtimeTypedInstanceName, "");
+ _builder.append(" = new org.eclipse.gmf.tooling.runtime.structure.DiagramStructure() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public int ");
+ CharSequence _visualIdMethodName = this.getVisualIdMethodName(it);
+ _builder.append(_visualIdMethodName, "\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _visualIDMethodCall = this.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t\t");
+ _builder.append("(view);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC_1 = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public String ");
+ CharSequence _modelIDMethodName = this.getModelIDMethodName(it);
+ _builder.append(_modelIDMethodName, "\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _modelIDMethodCall = this.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall, "\t\t");
+ _builder.append("(view);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC_2 = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public int ");
+ CharSequence _nodeVisualIDMethodName = this.getNodeVisualIDMethodName(it);
+ _builder.append(_nodeVisualIDMethodName, "\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View containerView, org.eclipse.emf.ecore.EObject domainElement) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _nodeVisualIDMethodCall = this.getNodeVisualIDMethodCall(it);
+ _builder.append(_nodeVisualIDMethodCall, "\t\t");
+ _builder.append("(containerView, domainElement);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC_3 = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean ");
+ CharSequence _checkNodeVisualIDMethodName = this.checkNodeVisualIDMethodName(it);
+ _builder.append(_checkNodeVisualIDMethodName, "\t");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View containerView, org.eclipse.emf.ecore.EObject domainElement, int candidate) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _checkNodeVisualIDMethodCall = this.checkNodeVisualIDMethodCall(it);
+ _builder.append(_checkNodeVisualIDMethodCall, "\t\t");
+ _builder.append("(containerView, domainElement, candidate);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC_4 = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC_4, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean ");
+ CharSequence _isCompartmentVisualIDMethodName = this.isCompartmentVisualIDMethodName(it);
+ _builder.append(_isCompartmentVisualIDMethodName, "\t");
+ _builder.append("(int visualID) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _isCompartmentVisualIDMethodCall = this.isCompartmentVisualIDMethodCall(it);
+ _builder.append(_isCompartmentVisualIDMethodCall, "\t\t");
+ _builder.append("(visualID);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _overrideC_5 = this.xptCodeStyle.overrideC(it);
+ _builder.append(_overrideC_5, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean ");
+ CharSequence _isSemanticLeafVisualIDMethodName = this.isSemanticLeafVisualIDMethodName(it);
+ _builder.append(_isSemanticLeafVisualIDMethodName, "\t");
+ _builder.append("(int visualID) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("return ");
+ CharSequence _isSemanticLeafVisualIDMethodCall = this.isSemanticLeafVisualIDMethodCall(it);
+ _builder.append(_isSemanticLeafVisualIDMethodCall, "\t\t");
+ _builder.append("(visualID);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("};");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getModelID(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static String ");
+ CharSequence _modelIDMethodName = this.getModelIDMethodName(it);
+ _builder.append(_modelIDMethodName, "");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View diagram = view.getDiagram();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("while (view != diagram) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EAnnotation annotation = view.getEAnnotation(\"Shortcut\"); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("if (annotation != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return annotation.getDetails().get(\"modelID\"); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("view = (org.eclipse.gmf.runtime.notation.View) view.eContainer();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return diagram != null ? diagram.getType() : null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence domainElementConstraintMethod(final GenExpressionProviderBase it, final GenCommonBase diagramElement, final ValueExpression expression, final GenClass context) {
+ if (it instanceof GenExpressionInterpreter) {
+ return _domainElementConstraintMethod((GenExpressionInterpreter)it, diagramElement, expression, context);
+ } else if (it instanceof GenJavaExpressionProvider) {
+ return _domainElementConstraintMethod((GenJavaExpressionProvider)it, diagramElement, expression, context);
+ } else if (it != null) {
+ return _domainElementConstraintMethod(it, diagramElement, expression, context);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, diagramElement, expression, context).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/extensions.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/extensions.java
new file mode 100644
index 00000000000..f46fed9941c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/extensions.java
@@ -0,0 +1,90 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class extensions extends xpt.editor.extensions {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence extensions(final GenEditorGenerator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t");
+ _builder.newLine();
+ CharSequence _extraLineBreak_1 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_1, "");
+ String _outTab = this.outTab();
+ _builder.append(_outTab, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace, "");
+ _builder.append("<extension point=\"org.eclipse.ui.contexts\" id=\"ui-context\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_1 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_1, "");
+ CharSequence _xmlGeneratedTag = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_2 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_2, "");
+ _builder.append("<context");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_3 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_3, "");
+ _builder.append("description=\"%context.description\"");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_4 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_4, "");
+ _builder.append("id=\"");
+ GenEditorView _editor = it.getEditor();
+ String _contextID = _editor.getContextID();
+ _builder.append(_contextID, "");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_5 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_5, "");
+ _builder.append("name=\"%context.name\"");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_6 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_6, "");
+ _builder.append("parentId=\"org.eclipse.gmf.runtime.diagram.ui.diagramContext\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_7 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_7, "");
+ _builder.append("</context>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_8 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_8, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ return _builder;
+ }
+
+ public String outTab() {
+ return "\t";
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/.gitignore
deleted file mode 100644
index d09e80a79fb..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/Utils_qvto.java
-/PaletteFactory.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/PaletteFactory.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/PaletteFactory.java
new file mode 100644
index 00000000000..991f88dffdc
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/PaletteFactory.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Artem Tikhomirov (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor.palette;
+
+import aspects.xpt.editor.palette.Utils_qvto;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.AbstractToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.Palette;
+import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.providers.ElementTypes;
+
+@Singleton
+@SuppressWarnings("all")
+public class PaletteFactory extends xpt.editor.palette.PaletteFactory {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private ElementTypes xptElementTypes;
+
+ public CharSequence PaletteFactory(final Palette it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenDiagram _diagram = it.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ String _packageName = it.getPackageName();
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ String _factoryClassName = it.getFactoryClassName();
+ _builder.append(_factoryClassName, "");
+ _builder.append(" extends org.eclipse.gmf.runtime.diagram.ui.services.palette.PaletteFactory.Adapter {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//RS: New Palette generation");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("//Generates the ID for the tool elements");
+ _builder.newLine();
+ _builder.append("//Generate the tool factory (if(ID) createtool...)");
+ _builder.newLine();
+ {
+ Iterable<AbstractToolEntry> _collectTools = this._utils_qvto.collectTools(it);
+ for(final AbstractToolEntry tool : _collectTools) {
+ CharSequence _generateIDAttribute = this.generateIDAttribute(tool);
+ _builder.append(_generateIDAttribute, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public ");
+ String _factoryClassName_1 = it.getFactoryClassName();
+ _builder.append(_factoryClassName_1, "\t");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generateCreateTool = this.generateCreateTool(it);
+ _builder.append(_generateCreateTool, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generateGetTemplate = this.generateGetTemplate(it);
+ _builder.append(_generateGetTemplate, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ Iterable<AbstractToolEntry> _collectTools_1 = this._utils_qvto.collectTools(it);
+ for(final AbstractToolEntry tool_1 : _collectTools_1) {
+ CharSequence _createTool = this.createTool(tool_1);
+ _builder.append(_createTool, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateCreateTool(final Palette it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public org.eclipse.gef.Tool createTool(String toolId) {");
+ _builder.newLine();
+ {
+ Iterable<AbstractToolEntry> _collectTools = this._utils_qvto.collectTools(it);
+ for(final AbstractToolEntry tool : _collectTools) {
+ _builder.append("\t\t");
+ CharSequence _checkToolID = this.checkToolID(tool);
+ _builder.append(_checkToolID, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("// default return: null");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence checkToolID(final AbstractToolEntry it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("if (toolId.equals(");
+ String _id = it.getId();
+ String _constantIDName = this._utils_qvto.getConstantIDName(_id);
+ _builder.append(_constantIDName, "");
+ _builder.append(")) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return ");
+ String _createMethodName = it.getCreateMethodName();
+ _builder.append(_createMethodName, "\t");
+ _builder.append("();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateGetTemplate(final Palette it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public Object getTemplate(String templateId) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// default return: null");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence generateIDAttribute(final AbstractToolEntry it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private final static String ");
+ String _id = it.getId();
+ String _constantIDName = this._utils_qvto.getConstantIDName(_id);
+ _builder.append(_constantIDName, "");
+ _builder.append(" = ");
+ String _id_1 = it.getId();
+ _builder.append(_id_1, "");
+ _builder.append(";");
+ {
+ String _id_2 = it.getId();
+ boolean _isQuoted = this._utils_qvto.isQuoted(_id_2, "\"");
+ if (_isQuoted) {
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence createTool(final AbstractToolEntry it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.gef.Tool ");
+ String _createMethodName = it.getCreateMethodName();
+ _builder.append(_createMethodName, "");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _newTool = this.newTool(((ToolEntry) it), "entry");
+ _builder.append(_newTool, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence newTool(final ToolEntry it, final String toolVarName) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenCommonBase> _elements = it.getElements();
+ boolean _isEmpty = _elements.isEmpty();
+ if (_isEmpty) {
+ this._common_qvto.ERROR("no elements for tool generation (Palette)");
+ _builder.newLineIfNotEmpty();
+ } else {
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.emf.type.core.IElementType> types = new java.util.ArrayList<org.eclipse.gmf.runtime.emf.type.core.IElementType>(");
+ EList<GenCommonBase> _elements_1 = it.getElements();
+ int _size = _elements_1.size();
+ _builder.append(_size, "");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenCommonBase> _elements_2 = it.getElements();
+ for(final GenCommonBase e : _elements_2) {
+ _builder.append("\t");
+ _builder.append("types.add(");
+ CharSequence _accessElementType = this.xptElementTypes.accessElementType(e);
+ _builder.append(_accessElementType, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gef.Tool tool = new org.eclipse.papyrus.uml.diagram.common.service.");
+ {
+ EList<GenNode> _genNodes = it.getGenNodes();
+ boolean _isEmpty_1 = _genNodes.isEmpty();
+ if (_isEmpty_1) {
+ _builder.append("AspectUnspecifiedTypeConnectionTool");
+ } else {
+ _builder.append("AspectUnspecifiedTypeCreationTool");
+ }
+ }
+ _builder.append("(types);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("return tool;");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/Utils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/Utils_qvto.java
new file mode 100644
index 00000000000..8e255cb90e1
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/editor/palette/Utils_qvto.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Artem Tikhomirov (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.editor.palette;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.inject.Singleton;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.AbstractToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.Palette;
+import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroupItem;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class Utils_qvto extends xpt.editor.palette.Utils_qvto {
+ /**
+ * collect all tools availables and valid to generate the palette. A tool is not valid when it does not create either a link or a node
+ */
+ public Iterable<AbstractToolEntry> collectTools(final Palette palette) {
+ Iterable<ToolGroup> _collectGroups = this.collectGroups(palette);
+ final Function1<ToolGroup, Iterable<AbstractToolEntry>> _function = new Function1<ToolGroup, Iterable<AbstractToolEntry>>() {
+ public Iterable<AbstractToolEntry> apply(final ToolGroup g) {
+ EList<ToolGroupItem> _entries = g.getEntries();
+ return Iterables.<AbstractToolEntry>filter(_entries, AbstractToolEntry.class);
+ }
+ };
+ Iterable<Iterable<AbstractToolEntry>> _map = IterableExtensions.<ToolGroup, Iterable<AbstractToolEntry>>map(_collectGroups, _function);
+ Iterable<AbstractToolEntry> _flatten = Iterables.<AbstractToolEntry>concat(_map);
+ final Function1<AbstractToolEntry, Boolean> _function_1 = new Function1<AbstractToolEntry, Boolean>() {
+ public Boolean apply(final AbstractToolEntry tool) {
+ return Boolean.valueOf(Utils_qvto.this.isValidTool(tool));
+ }
+ };
+ return IterableExtensions.<AbstractToolEntry>filter(_flatten, _function_1);
+ }
+
+ public boolean isValidTool(final AbstractToolEntry entry) {
+ if ((entry instanceof ToolEntry)) {
+ EList<GenNode> _genNodes = ((ToolEntry) entry).getGenNodes();
+ final int nodes = _genNodes.size();
+ EList<GenLink> _genLinks = ((ToolEntry) entry).getGenLinks();
+ final int links = _genLinks.size();
+ return ((nodes + links) != 0);
+ } else {
+ return true;
+ }
+ }
+
+ public String getToolPath(final String it) {
+ String result = null;
+ boolean _isQuoted = this.isQuoted(it, "\"");
+ if (_isQuoted) {
+ int _length = it.length();
+ int _minus = (_length - 1);
+ String _substring = it.substring(1, _minus);
+ result = _substring;
+ } else {
+ result = it;
+ }
+ return ("/" + result);
+ }
+
+ public boolean isQuoted(final String source, final String quoteStr) {
+ boolean _equals = Objects.equal(quoteStr, null);
+ if (_equals) {
+ return false;
+ }
+ boolean _and = false;
+ boolean _and_1 = false;
+ int _length = source.length();
+ int _length_1 = quoteStr.length();
+ int _multiply = (_length_1 * 2);
+ boolean _greaterEqualsThan = (_length >= _multiply);
+ if (!_greaterEqualsThan) {
+ _and_1 = false;
+ } else {
+ boolean _startsWith = source.startsWith(quoteStr);
+ _and_1 = _startsWith;
+ }
+ if (!_and_1) {
+ _and = false;
+ } else {
+ boolean _endsWith = source.endsWith(quoteStr);
+ _and = _endsWith;
+ }
+ return _and;
+ }
+
+ public String getConstantIDName(final String it) {
+ boolean _isQuoted = this.isQuoted(it, "\"");
+ if (_isQuoted) {
+ int _length = it.length();
+ int _minus = (_length - 1);
+ String _substring = it.substring(1, _minus);
+ return this.getUpperAndUnderscoreString(_substring);
+ } else {
+ return this.getUpperAndUnderscoreString(it);
+ }
+ }
+
+ public String getUpperAndUnderscoreString(final String value) {
+ String _upperCase = value.toUpperCase();
+ return _upperCase.replace(".", "_");
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/.gitignore
new file mode 100644
index 00000000000..46426b4fd49
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/.gitignore
@@ -0,0 +1 @@
+/AbstractExpression.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/AbstractExpression.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/AbstractExpression.java
new file mode 100644
index 00000000000..0f0326adfc3
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/expressions/AbstractExpression.java
@@ -0,0 +1,167 @@
+package aspects.xpt.expressions;
+
+import aspects.xpt.Common;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+
+@Singleton
+@SuppressWarnings("all")
+public class AbstractExpression extends xpt.expressions.AbstractExpression {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence performCast(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment(
+ "Expression may return number value which is not directly compatible with feature type (e.g. Double when Integer is expected), or EEnumLiteral meta-object when literal instance is expected");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static Object performCast(Object value, org.eclipse.emf.ecore.EDataType targetType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (targetType instanceof org.eclipse.emf.ecore.EEnum) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (value instanceof org.eclipse.emf.ecore.EEnumLiteral) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EEnumLiteral literal = (org.eclipse.emf.ecore.EEnumLiteral) value;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return (literal.getInstance() != null) ? literal.getInstance() : literal;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (false == value instanceof Number || targetType == null || targetType.getInstanceClass() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return value;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Class<?> targetClass = targetType.getInstanceClass();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Number num = (Number) value;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Class<?> valClass = value.getClass();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Class<?> targetWrapperClass = targetClass;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (targetClass.isPrimitive()) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("targetWrapperClass = org.eclipse.emf.ecore.util.EcoreUtil.wrapperClassFor(targetClass);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (valClass.equals(targetWrapperClass)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return value;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (Number.class.isAssignableFrom(targetWrapperClass)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Byte.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Byte(num.byteValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Integer.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Integer(num.intValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Short.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Short(num.shortValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Long.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Long(num.longValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(java.math.BigInteger.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return java.math.BigInteger.valueOf(num.longValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Float.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Float(num.floatValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(Double.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new Double(num.doubleValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetWrapperClass.equals(java.math.BigDecimal.class)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return new java.math.BigDecimal(num.doubleValue());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return value;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/.gitignore
deleted file mode 100644
index 8dde5108fd1..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/NavigatorContentProvider.java
-/NavigatorLinkHelper.java
-/AbstractNavigatorItem.java
-/DomainNavigatorContentProvider.java
-/DomainNavigatorItem.java
-/NavigatorGroup.java
-/NavigatorItem.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java
new file mode 100644
index 00000000000..29ed5c5391b
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/AbstractNavigatorItem.java
@@ -0,0 +1,142 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class AbstractNavigatorItem extends xpt.navigator.AbstractNavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor propertySheetPageContributor = new org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public String getContributorId() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return \"");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_1.getPlugin();
+ String _iD = _plugin.getID();
+ _builder.append(_iD, "\t\t\t");
+ _builder.append("\"; ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_2.getDiagram();
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(_diagram_1);
+ _builder.append(_overrideI_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(" && adapterType == org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return propertySheetPageContributor;\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_3.getDiagram();
+ CharSequence _overrideI_2 = this._codeStyle.overrideI(_diagram_2);
+ _builder.append(_overrideI_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java
new file mode 100644
index 00000000000..5dcc390e87a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorContentProvider.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import aspects.xpt.navigator.DomainNavigatorItem;
+import aspects.xpt.navigator.NavigatorContentProvider;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class DomainNavigatorContentProvider extends xpt.navigator.DomainNavigatorContentProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private NavigatorContentProvider xptNavigatorContentProvider;
+
+ @Inject
+ private DomainNavigatorItem xptDomainNavigatorItem;
+
+ public CharSequence wrapEObjects(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public Object[] wrapEObjects(Object[] objects, Object parentElement) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection<");
+ CharSequence _qualifiedClassName = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t");
+ _builder.append("> result = new java.util.ArrayList<");
+ CharSequence _qualifiedClassName_1 = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t");
+ _builder.append(">();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("for (int i = 0; i < objects.length; i++) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (objects[i] instanceof org.eclipse.emf.ecore.EObject) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("result.add(new ");
+ CharSequence _qualifiedClassName_2 = this.xptDomainNavigatorItem.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t\t");
+ _builder.append("((org.eclipse.emf.ecore.EObject) objects[i], parentElement, myAdapterFctoryContentProvier));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result.toArray();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java
new file mode 100644
index 00000000000..6a37ac3bba5
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/DomainNavigatorItem.java
@@ -0,0 +1,141 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class DomainNavigatorItem extends xpt.navigator.DomainNavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.emf.ecore.EObject.class, org.eclipse.ui.views.properties.IPropertySource.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t\t\t");
+ _builder.append(" domainNavigatorItem = (");
+ CharSequence _qualifiedClassName_2 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t\t\t\t");
+ _builder.append(") adaptableObject;");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject eObject = domainNavigatorItem.getEObject();");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (adapterType == org.eclipse.emf.ecore.EObject.class) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return eObject;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (adapterType == org.eclipse.ui.views.properties.IPropertySource.class) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return domainNavigatorItem.getPropertySourceProvider().getPropertySource(eObject);");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(_diagram_1);
+ _builder.append(_overrideI_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_3 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_3, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorContentProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorContentProvider.java
new file mode 100644
index 00000000000..555284388b9
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorContentProvider.java
@@ -0,0 +1,1020 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Modified by Patrick Tessier (CEA LIST)
+ * Emilien Perico (Atos Origin) - update template for GMF 2.2 compliance
+ */
+package aspects.xpt.navigator;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Set;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorChildReference;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorPath;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorPathSegment;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorReferenceType;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Conversions;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IntegerRange;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.editor.VisualIDRegistry;
+import xpt.navigator.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorContentProvider extends xpt.navigator.NavigatorContentProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence NavigatorContentProvider(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append(" implements org.eclipse.ui.navigator.ICommonContentProvider {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _attributes = this.attributes(it);
+ _builder.append(_attributes, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _constructor = this.constructor(it);
+ _builder.append(_constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _genAllMethodNodeCase = this.genAllMethodNodeCase(it);
+ _builder.append(_genAllMethodNodeCase, "\t");
+ _builder.append(" ");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _iContentProvider = this.iContentProvider(it);
+ _builder.append(_iContentProvider, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _iStructuredContentProvider = this.iStructuredContentProvider(it);
+ _builder.append(_iStructuredContentProvider, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _iMementoAware = this.iMementoAware(it);
+ _builder.append(_iMementoAware, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t ");
+ CharSequence _iCommonContentProvider = this.iCommonContentProvider(it);
+ _builder.append(_iCommonContentProvider, "\t ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t ");
+ CharSequence _iTreeContentProvider = this.iTreeContentProvider(it);
+ _builder.append(_iTreeContentProvider, "\t ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t ");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t ");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence processChanges(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource nextResource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("nextResource.unload();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("if (myViewer != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myViewer.getControl().getDisplay().asyncExec(myViewerRefreshRunnable);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("return true;");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initCommonAttributes(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = ");
+ CharSequence _createEditingDomain = this.createEditingDomain(it);
+ _builder.append(_createEditingDomain, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("myEditingDomain = (org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) editingDomain;");
+ _builder.newLine();
+ _builder.append("@SuppressWarnings(\"serial\")");
+ _builder.newLine();
+ _builder.append("java.util.Map<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean> map = new java.util.HashMap<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean>() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public java.lang.Boolean get(java.lang.Object key) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (!containsKey(key)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (key instanceof org.eclipse.emf.ecore.resource.Resource) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("put((org.eclipse.emf.ecore.resource.Resource) key, java.lang.Boolean.TRUE);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return super.get(key);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("myEditingDomain.setResourceToReadOnlyMap(map);");
+ _builder.newLine();
+ _builder.append("myViewerRefreshRunnable = new Runnable() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(_diagram_1);
+ _builder.append(_overrideI_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (myViewer != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("myViewer.refresh();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("myWorkspaceSynchronizer = new org.eclipse.emf.workspace.util.WorkspaceSynchronizer(editingDomain, new org.eclipse.emf.workspace.util.WorkspaceSynchronizer.Delegate() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_2.getDiagram();
+ CharSequence _overrideC = this._codeStyle.overrideC(_diagram_2);
+ _builder.append(_overrideC, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void dispose() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_3 = _editorGen_3.getDiagram();
+ CharSequence _overrideC_1 = this._codeStyle.overrideC(_diagram_3);
+ _builder.append(_overrideC_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean handleResourceChanged(final org.eclipse.emf.ecore.resource.Resource resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _processChanges = this.processChanges(it);
+ _builder.append(_processChanges, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenDiagram _diagram_4 = _editorGen_4.getDiagram();
+ CharSequence _overrideC_2 = this._codeStyle.overrideC(_diagram_4);
+ _builder.append(_overrideC_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean handleResourceDeleted(org.eclipse.emf.ecore.resource.Resource resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _processChanges_1 = this.processChanges(it);
+ _builder.append(_processChanges_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenDiagram _diagram_5 = _editorGen_5.getDiagram();
+ CharSequence _overrideC_3 = this._codeStyle.overrideC(_diagram_5);
+ _builder.append(_overrideC_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean handleResourceMoved(org.eclipse.emf.ecore.resource.Resource resource, final org.eclipse.emf.common.util.URI newURI) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _processChanges_2 = this.processChanges(it);
+ _builder.append(_processChanges_2, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("});");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence constructor(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.append("() {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _initCommonAttributes = this.initCommonAttributes(it);
+ _builder.append(_initCommonAttributes, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence dispose(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void dispose() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myWorkspaceSynchronizer.dispose();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myWorkspaceSynchronizer = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myViewerRefreshRunnable = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.resource.Resource resource = it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("resource.unload();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("((org.eclipse.emf.transaction.TransactionalEditingDomain) myEditingDomain).dispose();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myEditingDomain = null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getFileChildren(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ Iterable<GenNavigatorChildReference> references = this._utils_qvto.getChildReferencesFrom(it, null);
+ _builder.newLineIfNotEmpty();
+ CharSequence _fileResource = this.getFileResource(it);
+ _builder.append(_fileResource, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("java.util.Collection<Object> result = new java.util.ArrayList<Object>();");
+ _builder.newLine();
+ {
+ Set<String> _groupNames = this._utils_qvto.getGroupNames(references);
+ for(final String groupName : _groupNames) {
+ CharSequence _initGroupVariables = this.initGroupVariables(groupName, it, references, "file", null);
+ _builder.append(_initGroupVariables, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.notation.View> topViews = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.View>(resource.getContents().size());");
+ _builder.newLine();
+ _builder.append("for (org.eclipse.emf.ecore.EObject o : resource.getContents()) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (o instanceof org.eclipse.gmf.runtime.notation.View) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("topViews.add((org.eclipse.gmf.runtime.notation.View) o);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ {
+ for(final GenNavigatorChildReference ref : references) {
+ CharSequence _addNavigatorItemsPrefix = this.addNavigatorItemsPrefix(ref);
+ _builder.append(_addNavigatorItemsPrefix, "");
+ _builder.append("selectViewsByType(resource.getContents(), ");
+ GenCommonBase _child = ref.getChild();
+ CharSequence _childViewType = this.getChildViewType(_child);
+ _builder.append(_childViewType, "");
+ _builder.append(")");
+ CharSequence _addNavigatorItemsSuffix = this.addNavigatorItemsSuffix(ref, "file", false);
+ _builder.append(_addNavigatorItemsSuffix, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ Set<String> _groupNames_1 = this._utils_qvto.getGroupNames(references);
+ for(final String groupName_1 : _groupNames_1) {
+ CharSequence _addGroups = this.addGroups(groupName_1, references);
+ _builder.append(_addGroups, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("return result.toArray();");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getViewChildren(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private Object[] getViewChildren(org.eclipse.gmf.runtime.notation.View view, Object parentElement) {");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("switch (");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, " \t");
+ _builder.append("(view)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Iterable<GenCommonBase> _navigatorContainerNodes = this._utils_qvto.getNavigatorContainerNodes(it);
+ for(final GenCommonBase node : _navigatorContainerNodes) {
+ CharSequence _caseNavigatorNode = this.caseNavigatorNode(node, it);
+ _builder.append(_caseNavigatorNode, "");
+ _builder.append("\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" \t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return EMPTY_ARRAY;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence utilityMethods(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Iterable<GenCommonBase> _navigatorContainerNodes = this._utils_qvto.getNavigatorContainerNodes(it);
+ boolean _notEmpty = this._common_qvto.<GenCommonBase>notEmpty(_navigatorContainerNodes);
+ if (_notEmpty) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection getLinksSourceByType(java.util.Collection edges, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("for (java.util.Iterator it = edges.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextEdgeSource = nextEdge.getSource();");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) {");
+ _builder.newLine();
+ _builder.append(" \t\t\t");
+ _builder.append("result.add(nextEdgeSource);");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("private java.util.Collection getLinksTargetByType(java.util.Collection edges, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("for (java.util.Iterator it = edges.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextEdgeTarget = nextEdge.getTarget();");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) {");
+ _builder.newLine();
+ _builder.append(" \t\t\t");
+ _builder.append("result.add(nextEdgeTarget);");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("private java.util.Collection getOutgoingLinksByType(java.util.Collection nodes, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection getIncomingLinksByType(java.util.Collection nodes, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append(" \t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection getChildrenByType(java.util.Collection nodes, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(selectViewsByType(nextNode.getChildren(), type));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection getDiagramLinksByType(java.util.Collection diagrams, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator it = diagrams.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram nextDiagram = (org.eclipse.gmf.runtime.notation.Diagram) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.addAll(selectViewsByType(nextDiagram.getEdges(), type));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection selectViewsByType(java.util.Collection views, String type) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator it = views.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (type.equals(nextView.getType()) && isOwnView(nextView)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("result.add(nextView);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_7 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_7, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection createNavigatorItems(java.util.Collection views, Object parent, boolean isLeafs) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("for (java.util.Iterator it = views.iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("result.add(new ");
+ String _navigatorItemQualifiedClassName = it.getNavigatorItemQualifiedClassName();
+ _builder.append(_navigatorItemQualifiedClassName, "\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.notation.View) it.next(), parent, isLeafs));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_8 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_8, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("private boolean isOwnView(org.eclipse.gmf.runtime.notation.View view) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return ");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _modelID = VisualIDRegistry.modelID(_diagram);
+ _builder.append(_modelID, "\t\t\t");
+ _builder.append(".equals(");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ CharSequence _modelIDMethodCall = this.xptVisualIDRegistry.getModelIDMethodCall(_diagram_1);
+ _builder.append(_modelIDMethodCall, "\t\t\t");
+ _builder.append("(view));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _foreignShortcuts = this.getForeignShortcuts(it);
+ _builder.append(_foreignShortcuts, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence getForeignShortcuts(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _and = false;
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ boolean _generateCreateShortcutAction = _diagram.generateCreateShortcutAction();
+ if (!_generateCreateShortcutAction) {
+ _and = false;
+ } else {
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ Iterable<GenNavigatorChildReference> _childReferencesFrom = this._utils_qvto.getChildReferencesFrom(it, _diagram_1);
+ boolean _notEmpty = this._common_qvto.<GenNavigatorChildReference>notEmpty(_childReferencesFrom);
+ _and = _notEmpty;
+ }
+ if (_and) {
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("private java.util.Collection getForeignShortcuts(org.eclipse.gmf.runtime.notation.Diagram diagram, Object parent) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("for (java.util.Iterator it = diagram.getChildren().iterator(); it.hasNext();) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (!isOwnView(nextView) && nextView.getEAnnotation(\"Shortcut\") != null) { ");
+ CharSequence _nonNLS = this._common.nonNLS();
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("result.add(nextView);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return createNavigatorItems(result, parent, false);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence caseNavigatorNode(final GenCommonBase it, final GenNavigator navigator) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("case ");
+ CharSequence _visualID = VisualIDRegistry.visualID(it);
+ _builder.append(_visualID, "\t");
+ _builder.append(": {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t\t\t\t\t\t");
+ _builder.append("//modification of the template to avoid mistake of 65kb.");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return getViewChildrenFor");
+ String _editPartClassName = it.getEditPartClassName();
+ _builder.append(_editPartClassName, "\t\t");
+ _builder.append("(view, parentElement);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createEditingDomain(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain()");
+ return _builder;
+ }
+
+ public CharSequence genAllMethodNodeCase(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ Iterable<GenCommonBase> _navigatorContainerNodes = this._utils_qvto.getNavigatorContainerNodes(it);
+ for(final GenCommonBase container : _navigatorContainerNodes) {
+ CharSequence _caseMethodNodeNode = this.caseMethodNodeNode(container, it);
+ _builder.append(_caseMethodNodeNode, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence caseMethodNodeNode(final GenCommonBase it, final GenNavigator navigator) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("/**");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*Papyrus Template");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*this method is a modification of gmf code in order to avoid getViewChidreen() method becoming greater than 64kb.");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("*@generated");
+ _builder.newLine();
+ _builder.append("**/");
+ _builder.newLine();
+ _builder.append("private Object[] getViewChildrenFor");
+ String _editPartClassName = it.getEditPartClassName();
+ _builder.append(_editPartClassName, "");
+ _builder.append("(org.eclipse.gmf.runtime.notation.View view, Object parentElement){");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("java.util.Collection result = new java.util.ArrayList();");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _addForeignShortcuts = this.addForeignShortcuts(it);
+ _builder.append(_addForeignShortcuts, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ Iterable<GenNavigatorChildReference> _references = this._utils_qvto.getChildReferencesFrom(navigator, it);
+ _builder.newLineIfNotEmpty();
+ {
+ Set<String> _groupNames = this._utils_qvto.getGroupNames(_references);
+ for(final String groupNames : _groupNames) {
+ _builder.append("\t\t");
+ CharSequence _initGroupVariables = this.initGroupVariables(groupNames, navigator, _references, "parentElement", it);
+ _builder.append(_initGroupVariables, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ {
+ boolean _isEmpty = IterableExtensions.isEmpty(_references);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ {
+ int _size = IterableExtensions.size(_references);
+ IntegerRange _upTo = new IntegerRange(1, _size);
+ for(final Integer referencesIterator : _upTo) {
+ _builder.append("\t\t");
+ final Iterable<GenNavigatorChildReference> _converted__references = (Iterable<GenNavigatorChildReference>)_references;
+ GenNavigatorChildReference reference = ((GenNavigatorChildReference[])Conversions.unwrapArray(_converted__references, GenNavigatorChildReference.class))[((referencesIterator).intValue() - 1)];
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenNavigatorPath> _findConnectionPaths = reference.findConnectionPaths();
+ boolean _isEmpty_1 = _findConnectionPaths.isEmpty();
+ boolean _not_1 = (!_isEmpty_1);
+ if (_not_1) {
+ {
+ EList<GenNavigatorPath> _findConnectionPaths_1 = reference.findConnectionPaths();
+ int _size_1 = _findConnectionPaths_1.size();
+ IntegerRange _upTo_1 = new IntegerRange(1, _size_1);
+ for(final Integer pathsIterator : _upTo_1) {
+ _builder.append("\t\t");
+ _builder.append("\t");
+ EList<GenNavigatorPath> _findConnectionPaths_2 = reference.findConnectionPaths();
+ GenNavigatorPath path = _findConnectionPaths_2.get(((pathsIterator).intValue() - 1));
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenNavigatorPathSegment> _segments = path.getSegments();
+ boolean _isEmpty_2 = _segments.isEmpty();
+ boolean _not_2 = (!_isEmpty_2);
+ if (_not_2) {
+ {
+ EList<GenNavigatorPathSegment> _segments_1 = path.getSegments();
+ int _size_2 = _segments_1.size();
+ IntegerRange _upTo_2 = new IntegerRange(1, _size_2);
+ for(final Integer segmentsIterator : _upTo_2) {
+ _builder.append("\t\t");
+ _builder.append("\t");
+ EList<GenNavigatorPathSegment> _segments_2 = path.getSegments();
+ GenNavigatorPathSegment segment = _segments_2.get(((segmentsIterator).intValue() - 1));
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("\t");
+ {
+ if (((((referencesIterator).intValue() == 1) && ((pathsIterator).intValue() == 1)) && ((segmentsIterator).intValue() == 1))) {
+ _builder.append("java.util.Collection ");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("connectedViews = ");
+ GenCommonBase _from = segment.getFrom();
+ GenNavigatorReferenceType _referenceType = reference.getReferenceType();
+ CharSequence _childrenMethodName = this.childrenMethodName(_from, _referenceType, segment);
+ _builder.append(_childrenMethodName, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("(");
+ {
+ if (((segmentsIterator).intValue() == 1)) {
+ _builder.append("java.util.Collections.singleton(view)");
+ } else {
+ _builder.append("connectedViews");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append(", ");
+ GenCommonBase _to = segment.getTo();
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(_to);
+ _builder.append(_typeMethodCall, "\t\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("\t");
+ CharSequence _addNavigatorItemsPrefix = this.addNavigatorItemsPrefix(reference);
+ _builder.append(_addNavigatorItemsPrefix, "\t\t\t");
+ _builder.append("connectedViews");
+ GenNavigatorReferenceType _referenceType_1 = reference.getReferenceType();
+ boolean _notEquals = (!Objects.equal(_referenceType_1, GenNavigatorReferenceType.CHILDREN_LITERAL));
+ CharSequence _addNavigatorItemsSuffix = this.addNavigatorItemsSuffix(reference, "parentElement", _notEquals);
+ _builder.append(_addNavigatorItemsSuffix, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ Set<String> _groupNames_1 = this._utils_qvto.getGroupNames(_references);
+ for(final String groupNames_1 : _groupNames_1) {
+ _builder.append("\t\t");
+ CharSequence _addGroups = this.addGroups(groupNames_1, _references);
+ _builder.append(_addGroups, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return result.toArray();");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java
new file mode 100644
index 00000000000..0c36fb8db89
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorGroup.java
@@ -0,0 +1,67 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorGroup extends xpt.navigator.NavigatorGroup {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence attributes(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private String myGroupName;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private String myIcon;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private java.util.Collection<java.lang.Object> myChildren = new java.util.LinkedList<java.lang.Object>();");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence addChildren(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void addChildren(java.util.Collection<java.lang.Object> children) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myChildren.addAll(children);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java
new file mode 100644
index 00000000000..0250ae102e8
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorItem.java
@@ -0,0 +1,117 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.CodeStyle;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorItem extends xpt.navigator.NavigatorItem {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ public CharSequence registerAdapterFactory(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("static {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Class[] supportedTypes = new Class[] { org.eclipse.gmf.runtime.notation.View.class, org.eclipse.emf.ecore.EObject.class };");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _overrideI = this._codeStyle.overrideI(_diagram);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Object getAdapter(Object adaptableObject, Class adapterType) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (adaptableObject instanceof ");
+ CharSequence _qualifiedClassName = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(" && (adapterType == org.eclipse.gmf.runtime.notation.View.class || adapterType == org.eclipse.emf.ecore.EObject.class)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("return ((");
+ CharSequence _qualifiedClassName_1 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "\t\t\t\t");
+ _builder.append(") adaptableObject).getView();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ CharSequence _overrideI_1 = this._codeStyle.overrideI(_diagram_1);
+ _builder.append(_overrideI_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"rawtypes\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public Class[] getAdapterList() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return supportedTypes;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}, ");
+ CharSequence _qualifiedClassName_2 = this.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "\t");
+ _builder.append(".class);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorLinkHelper.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorLinkHelper.java
new file mode 100644
index 00000000000..080aff59a83
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/navigator/NavigatorLinkHelper.java
@@ -0,0 +1,82 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.navigator;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigatorChildReference;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.navigator.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class NavigatorLinkHelper extends xpt.navigator.NavigatorLinkHelper {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ public CharSequence findSelection(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.jface.viewers.IStructuredSelection findSelection(org.eclipse.ui.IEditorInput anInput) {");
+ _builder.newLine();
+ {
+ GenNavigatorChildReference _diagramTopReference = this._utils_qvto.getDiagramTopReference(it);
+ boolean _notEquals = (!Objects.equal(_diagramTopReference, null));
+ if (_notEquals) {
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenPlugin _plugin = _editorGen.getPlugin();
+ CharSequence _defineDiagramDocument = this.defineDiagramDocument(_plugin);
+ _builder.append(_defineDiagramDocument, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ CharSequence _findSelectionBody = this.findSelectionBody(it);
+ _builder.append(_findSelectionBody, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence findSelectionBody(final GenNavigator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ GenNavigatorChildReference _diagramTopReference = this._utils_qvto.getDiagramTopReference(it);
+ boolean _notEquals = (!Objects.equal(_diagramTopReference, null));
+ if (_notEquals) {
+ GenNavigatorChildReference _diagramTopReference_1 = this._utils_qvto.getDiagramTopReference(it);
+ CharSequence _diagramSelection = this.getDiagramSelection(_diagramTopReference_1);
+ _builder.append(_diagramSelection, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("return org.eclipse.jface.viewers.StructuredSelection.EMPTY;");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/.gitignore
deleted file mode 100644
index eda9879a78f..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/ActivatorImpl.java
-/manifest.java
-/plugin.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/ActivatorImpl.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/ActivatorImpl.java
new file mode 100644
index 00000000000..7ea4a88bf42
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/ActivatorImpl.java
@@ -0,0 +1,477 @@
+package aspects.xpt.plugin;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionInterpreter;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderBase;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenLanguage;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import plugin.Activator;
+import xpt.Common;
+import xpt.editor.DocumentProvider;
+import xpt.expressions.getExpression;
+import xpt.providers.ElementInitializers;
+
+@Singleton
+@SuppressWarnings("all")
+public class ActivatorImpl extends xpt.plugin.ActivatorImpl {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private DocumentProvider xptDocProvider;
+
+ @Inject
+ private ElementInitializers xptElementInitializers;
+
+ @Inject
+ private getExpression xptExpr;
+
+ public CharSequence ActivatorImpl(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("package ");
+ CharSequence _packageName = this.xptActivator.packageName(it);
+ _builder.append(_packageName, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public class ");
+ CharSequence _className = this.xptActivator.className(it);
+ _builder.append(_className, "\t");
+ _builder.append(" extends org.eclipse.ui.plugin.AbstractUIPlugin {");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _attrs = this.attrs(it);
+ _builder.append(_attrs, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _constructor = this.constructor(it);
+ _builder.append(_constructor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _start = this.start(it);
+ _builder.append(_start, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ CharSequence _stop = this.stop(_editorGen_1);
+ _builder.append(_stop, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _instance = this.getInstance(it);
+ _builder.append(_instance, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _preferenceStore = this.getPreferenceStore();
+ _builder.append(_preferenceStore, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _itemProvidersAdaptorFactory = this.getItemProvidersAdaptorFactory(it);
+ _builder.append(_itemProvidersAdaptorFactory, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _itemImageDescriptor = this.getItemImageDescriptor(it);
+ _builder.append(_itemImageDescriptor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _bundleDescriptorImage = this.getBundleDescriptorImage(it);
+ _builder.append(_bundleDescriptorImage, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _findImageDescriptor = this.findImageDescriptor(it);
+ _builder.append(_findImageDescriptor, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _bundleImage = this.getBundleImage(it);
+ _builder.append(_bundleImage, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _string = this.getString(it);
+ _builder.append(_string, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_2.getDiagram();
+ CharSequence _documentProviderGetter = this.documentProviderGetter(_diagram);
+ _builder.append(_documentProviderGetter, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_3.getDiagram();
+ CharSequence _linkConstraint = this.linkConstraint(_diagram_1);
+ _builder.append(_linkConstraint, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_4.getDiagram();
+ CharSequence _initializerGetter = this.initializerGetter(_diagram_2);
+ _builder.append(_initializerGetter, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenDiagram _diagram_3 = _editorGen_5.getDiagram();
+ CharSequence _initializerSetter = this.initializerSetter(_diagram_3);
+ _builder.append(_initializerSetter, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _providersAccessMethods = this.providersAccessMethods(it);
+ _builder.append(_providersAccessMethods, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _logError = this.logError(it);
+ _builder.append(_logError, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _logInfo = this.logInfo(it);
+ _builder.append(_logInfo, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _logError_1 = this.getLogError(it);
+ _builder.append(_logError_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence attrs(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final String ID = \"");
+ String _iD = it.getID();
+ _builder.append(_iD, "");
+ _builder.append("\"; //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.papyrus.infra.core.log.LogHelper myLogHelper;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static final org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint DIAGRAM_PREFERENCES_HINT =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("new org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint(ID);");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private static ");
+ CharSequence _className = this.xptActivator.className(it);
+ _builder.append(_className, "");
+ _builder.append(" instance;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private org.eclipse.emf.common.notify.AdapterFactory adapterFactory;");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private ");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _qualifiedClassName = this.xptDocProvider.qualifiedClassName(_diagram);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append(" documentProvider;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ EList<GenLink> _links = _diagram_1.getLinks();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ boolean _isSansDomain = l.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenLink>exists(_links, _function);
+ if (_exists) {
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private ");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_2.getDiagram();
+ String _linkCreationConstraintsQualifiedClassName = _diagram_2.getLinkCreationConstraintsQualifiedClassName();
+ _builder.append(_linkCreationConstraintsQualifiedClassName, "");
+ _builder.append(" linkConstraints;");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ CharSequence _generatedMemberComment_7 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_7, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private ");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenDiagram _diagram_3 = _editorGen_3.getDiagram();
+ CharSequence _qualifiedClassName_1 = this.xptElementInitializers.qualifiedClassName(_diagram_3);
+ _builder.append(_qualifiedClassName_1, "");
+ _builder.append(" initializers;");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders = _editorGen_4.getExpressionProviders();
+ boolean _notEquals = (!Objects.equal(_expressionProviders, null));
+ if (_notEquals) {
+ {
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders_1 = _editorGen_5.getExpressionProviders();
+ EList<GenExpressionProviderBase> _providers = _expressionProviders_1.getProviders();
+ Iterable<GenExpressionInterpreter> _filter = Iterables.<GenExpressionInterpreter>filter(_providers, GenExpressionInterpreter.class);
+ for(final GenExpressionInterpreter p : _filter) {
+ CharSequence _generatedMemberComment_8 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_8, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private ");
+ CharSequence _expressionInterpriterQualifiedClassName = this.xptExpr.getExpressionInterpriterQualifiedClassName(p);
+ _builder.append(_expressionInterpriterQualifiedClassName, "");
+ _builder.append(" ");
+ GenLanguage _language = p.getLanguage();
+ _builder.append(_language, "");
+ _builder.append("Factory;");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence start(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void start(org.osgi.framework.BundleContext context) throws Exception {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("super.start(context);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("instance = this;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("myLogHelper = new org.eclipse.papyrus.infra.core.log.LogHelper(this);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint.registerPreferenceStore(DIAGRAM_PREFERENCES_HINT, getPreferenceStore());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("adapterFactory = org.eclipse.papyrus.infra.gmfdiag.common.Activator.getInstance().getItemProvidersAdapterFactory();");
+ _builder.newLine();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ String _preferencesPackageName = _diagram.getPreferencesPackageName();
+ _builder.append(_preferencesPackageName, "\t");
+ _builder.append(".DiagramPreferenceInitializer diagramPreferenceInitializer = new ");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_1.getDiagram();
+ String _preferencesPackageName_1 = _diagram_1.getPreferencesPackageName();
+ _builder.append(_preferencesPackageName_1, "\t");
+ _builder.append(".DiagramPreferenceInitializer();");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("diagramPreferenceInitializer.initializeDefaultPreferences();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence stop(final GenEditorGenerator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void stop(org.osgi.framework.BundleContext context) throws Exception {");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("adapterFactory = null;");
+ _builder.newLine();
+ {
+ GenDiagram _diagram = it.getDiagram();
+ EList<GenLink> _links = _diagram.getLinks();
+ final Function1<GenLink, Boolean> _function = new Function1<GenLink, Boolean>() {
+ public Boolean apply(final GenLink l) {
+ boolean _isSansDomain = l.isSansDomain();
+ return Boolean.valueOf((!_isSansDomain));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenLink>exists(_links, _function);
+ if (_exists) {
+ _builder.append(" ");
+ _builder.append("linkConstraints = null;");
+ _builder.newLine();
+ }
+ }
+ _builder.append(" ");
+ _builder.append("initializers = null;");
+ _builder.newLine();
+ {
+ GenExpressionProviderContainer _expressionProviders = it.getExpressionProviders();
+ boolean _notEquals = (!Objects.equal(_expressionProviders, null));
+ if (_notEquals) {
+ {
+ GenExpressionProviderContainer _expressionProviders_1 = it.getExpressionProviders();
+ EList<GenExpressionProviderBase> _providers = _expressionProviders_1.getProviders();
+ Iterable<GenExpressionInterpreter> _filter = Iterables.<GenExpressionInterpreter>filter(_providers, GenExpressionInterpreter.class);
+ for(final GenExpressionInterpreter p : _filter) {
+ _builder.append(" ");
+ GenLanguage _language = p.getLanguage();
+ _builder.append(_language, " ");
+ _builder.append("Factory = null;");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ _builder.append(" ");
+ _builder.append("instance = null;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("super.stop(context);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getPreferenceStore() {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("public org.eclipse.jface.preference.IPreferenceStore getPreferenceStore() {");
+ _builder.newLine();
+ _builder.append(" \t");
+ _builder.append("org.eclipse.jface.preference.IPreferenceStore store=org.eclipse.papyrus.infra.gmfdiag.preferences.Activator.getDefault().getPreferenceStore();");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("return store;");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence logError(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void logError(String error) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getLogHelper().warn(error);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void logError(String error, Throwable throwable) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getLogHelper().error(error, throwable);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence logInfo(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void logInfo(String message) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getLogHelper().info(message);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void logInfo(String message, Throwable throwable) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("getLogHelper().error(message, throwable);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getLogError(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.papyrus.infra.core.log.LogHelper getLogHelper() {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return myLogHelper;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/manifest.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/manifest.java
new file mode 100644
index 00000000000..40f376df041
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/manifest.java
@@ -0,0 +1,244 @@
+/**
+ * Copyright (c) 2007, 2009 Borland Software Corporation
+ *
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Thibault Landre (Atos Origin) - add Papyrus dependencies to Papyrus GMF diagram
+ * Vincent Lorenzo (CEA-LIST) vincent.lorenzo@cea.fr : add the dependencyorg.eclipse.papyrus.infra.services.edit
+ */
+package aspects.xpt.plugin;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.gmf.codegen.gmfgen.GenPropertySheet;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingDeleteService;
+import org.eclipse.papyrus.papyrusgmfgenextension.EditPartUsingReorientService;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class manifest extends xpt.plugin.manifest {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence requireBundle(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("Require-Bundle: org.eclipse.core.runtime,");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenApplication _application = _editorGen.getApplication();
+ boolean _equals = Objects.equal(_application, null);
+ if (_equals) {
+ _builder.append(" org.eclipse.core.resources,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ boolean _or = false;
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_1.getDiagram();
+ boolean _generateShortcutIcon = _diagram.generateShortcutIcon();
+ if (_generateShortcutIcon) {
+ _or = true;
+ } else {
+ boolean _and = false;
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenNavigator _navigator = _editorGen_2.getNavigator();
+ boolean _notEquals = (!Objects.equal(_navigator, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenNavigator _navigator_1 = _editorGen_3.getNavigator();
+ boolean _isGenerateDomainModelNavigator = _navigator_1.isGenerateDomainModelNavigator();
+ _and = _isGenerateDomainModelNavigator;
+ }
+ _or = _and;
+ }
+ if (_or) {
+ _builder.append(" org.eclipse.core.expressions,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" org.eclipse.jface,");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenApplication _application_1 = _editorGen_4.getApplication();
+ boolean _equals_1 = Objects.equal(_application_1, null);
+ if (_equals_1) {
+ _builder.append(" org.eclipse.ui.ide,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" org.eclipse.ui.views,");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenNavigator _navigator_2 = _editorGen_5.getNavigator();
+ boolean _notEquals_1 = (!Objects.equal(_navigator_2, null));
+ if (_notEquals_1) {
+ _builder.append(" org.eclipse.ui.navigator,");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("org.eclipse.ui.navigator.resources,");
+ _builder.newLine();
+ }
+ }
+ _builder.append(" org.eclipse.emf.ecore,");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("org.eclipse.emf.ecore.xmi,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.emf.edit.ui,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.emf.core,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.emf.commands.core,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.emf.ui.properties,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.uml.diagram.common,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.uml.service.types,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.infra.widgets,");
+ _builder.newLine();
+ {
+ boolean _isPrintingEnabled = it.isPrintingEnabled();
+ if (_isPrintingEnabled) {
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.printing,");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.printing.render,");
+ _builder.newLine();
+ }
+ }
+ {
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenPropertySheet _propertySheet = _editorGen_6.getPropertySheet();
+ boolean _notEquals_2 = (!Objects.equal(_propertySheet, null));
+ if (_notEquals_2) {
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.properties,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.providers,");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenApplication _application_2 = _editorGen_7.getApplication();
+ boolean _equals_2 = Objects.equal(_application_2, null);
+ if (_equals_2) {
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.providers.ide,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.render,");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.resources.editor,");
+ _builder.newLine();
+ {
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ GenApplication _application_3 = _editorGen_8.getApplication();
+ boolean _equals_3 = Objects.equal(_application_3, null);
+ if (_equals_3) {
+ _builder.append(" org.eclipse.gmf.runtime.diagram.ui.resources.editor.ide,");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ EList<String> reqPlugins = it.getAllRequiredPlugins();
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _contains = reqPlugins.contains("org.eclipse.gmf.tooling.runtime");
+ boolean _not = (!_contains);
+ if (_not) {
+ boolean notUsetBooleanVar = reqPlugins.add("org.eclipse.gmf.tooling.runtime");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ for(final String reqId : reqPlugins) {
+ _builder.append(" ");
+ _builder.append(reqId, "");
+ _builder.append(";visibility:=reexport,");
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" org.eclipse.gef,");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.preferences,");
+ _builder.newLine();
+ {
+ boolean _or_1 = false;
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<EditPartUsingDeleteService> _filter = Iterators.<EditPartUsingDeleteService>filter(_allContents, EditPartUsingDeleteService.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _notEquals_3 = (_size != 0);
+ if (_notEquals_3) {
+ _or_1 = true;
+ } else {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<EditPartUsingReorientService> _filter_1 = Iterators.<EditPartUsingReorientService>filter(_allContents_1, EditPartUsingReorientService.class);
+ int _size_1 = IteratorExtensions.size(_filter_1);
+ boolean _notEquals_4 = (_size_1 != 0);
+ _or_1 = _notEquals_4;
+ }
+ if (_or_1) {
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.extensionpoints.editors,");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.infra.services.edit");
+ _builder.newLine();
+ } else {
+ _builder.append(" ");
+ _builder.append("org.eclipse.papyrus.extensionpoints.editors");
+ _builder.newLine();
+ }
+ }
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/plugin.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/plugin.java
new file mode 100644
index 00000000000..8fafc53667f
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/plugin/plugin.java
@@ -0,0 +1,624 @@
+package aspects.xpt.plugin;
+
+import aspects.xpt.editor.palette.Utils_qvto;
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.AbstractToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.GenApplication;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramUpdater;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenMetricContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenNavigator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.gmf.codegen.gmfgen.GenPropertySheet;
+import org.eclipse.gmf.codegen.gmfgen.Palette;
+import org.eclipse.gmf.codegen.gmfgen.ToolEntry;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroup;
+import org.eclipse.gmf.codegen.gmfgen.ToolGroupItem;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import xpt.Common;
+import xpt.editor.extensions;
+import xpt.plugin.pluginUtils;
+
+@Singleton
+@SuppressWarnings("all")
+public class plugin extends xpt.plugin.plugin {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private pluginUtils _pluginUtils;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private extensions xptEditorExtension;
+
+ @Inject
+ private xpt.diagram.preferences.extensions xptPreferencesExtension;
+
+ @Inject
+ private xpt.propsheet.extensions xptPropsheetExtension;
+
+ @Inject
+ private xpt.navigator.extensions xptNavigatorExtension;
+
+ @Inject
+ private xpt.application.extensions xptApplicationExtension;
+
+ @Inject
+ private xpt.diagram.updater.extensions xptUpdaterExtension;
+
+ @Inject
+ private impl.actions.extensions xptActionExtension;
+
+ @Inject
+ private xpt.providers.extensions xptProvidersExtension;
+
+ public CharSequence plugin(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
+ _builder.newLine();
+ _builder.append("<?eclipse version=\"3.0\"?>");
+ _builder.newLine();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _xcopyright = this._common.xcopyright(_editorGen);
+ _builder.append(_xcopyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("<plugin>");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ CharSequence _extensions = this.xptEditorExtension.extensions(_editorGen_1);
+ _builder.append(_extensions, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenDiagram _diagram = _editorGen_2.getDiagram();
+ CharSequence _validation = this.validation(_diagram);
+ _builder.append(_validation, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenMetricContainer _metrics = _editorGen_3.getMetrics();
+ boolean _notEquals = (!Objects.equal(_metrics, null));
+ if (_notEquals) {
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenMetricContainer _metrics_1 = _editorGen_4.getMetrics();
+ CharSequence _metrics_2 = this.metrics(_metrics_1);
+ _builder.append(_metrics_2, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ CharSequence _palettePredefinedEntries = this.palettePredefinedEntries(_editorGen_5);
+ _builder.append(_palettePredefinedEntries, "\t\t");
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ CharSequence _paletteEntries = this.paletteEntries(_editorGen_6);
+ _builder.append(_paletteEntries, "");
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenDiagram _diagram_1 = _editorGen_7.getDiagram();
+ CharSequence _extensions_1 = this.xptPreferencesExtension.extensions(_diagram_1);
+ _builder.append(_extensions_1, "");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_8 = it.getEditorGen();
+ GenPropertySheet _propertySheet = _editorGen_8.getPropertySheet();
+ boolean _notEquals_1 = (!Objects.equal(_propertySheet, null));
+ if (_notEquals_1) {
+ GenEditorGenerator _editorGen_9 = it.getEditorGen();
+ GenPropertySheet _propertySheet_1 = _editorGen_9.getPropertySheet();
+ CharSequence _extensions_2 = this.xptPropsheetExtension.extensions(_propertySheet_1);
+ _builder.append(_extensions_2, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_10 = it.getEditorGen();
+ GenDiagram _diagram_2 = _editorGen_10.getDiagram();
+ CharSequence _extensions_3 = this.xptProvidersExtension.extensions(_diagram_2);
+ _builder.append(_extensions_3, "");
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_11 = it.getEditorGen();
+ GenNavigator _navigator = _editorGen_11.getNavigator();
+ boolean _notEquals_2 = (!Objects.equal(_navigator, null));
+ if (_notEquals_2) {
+ GenEditorGenerator _editorGen_12 = it.getEditorGen();
+ GenNavigator _navigator_1 = _editorGen_12.getNavigator();
+ CharSequence _extensions_4 = this.xptNavigatorExtension.extensions(_navigator_1);
+ _builder.append(_extensions_4, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ GenEditorGenerator _editorGen_13 = it.getEditorGen();
+ GenApplication _application = _editorGen_13.getApplication();
+ boolean _notEquals_3 = (!Objects.equal(_application, null));
+ if (_notEquals_3) {
+ GenEditorGenerator _editorGen_14 = it.getEditorGen();
+ GenApplication _application_1 = _editorGen_14.getApplication();
+ CharSequence _extensions_5 = this.xptApplicationExtension.extensions(_application_1);
+ _builder.append(_extensions_5, "");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_15 = it.getEditorGen();
+ CharSequence _extensionsConstraintProviders = this._pluginUtils.extensionsConstraintProviders(_editorGen_15);
+ _builder.append(_extensionsConstraintProviders, "");
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_16 = it.getEditorGen();
+ GenDiagramUpdater _diagramUpdater = _editorGen_16.getDiagramUpdater();
+ CharSequence _extensions_6 = this.xptUpdaterExtension.extensions(_diagramUpdater);
+ _builder.append(_extensions_6, "");
+ _builder.newLineIfNotEmpty();
+ GenEditorGenerator _editorGen_17 = it.getEditorGen();
+ CharSequence _Main = this.xptActionExtension.Main(_editorGen_17);
+ _builder.append(_Main, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("</plugin>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence additions(final GenPlugin it) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence palettePredefinedEntries(final GenEditorGenerator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _xmlGeneratedTag = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("id=\"");
+ GenPlugin _plugin = it.getPlugin();
+ String _name = _plugin.getName();
+ _builder.append(_name, "\t");
+ _builder.append(".palettedefinition\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("name=\"");
+ GenPlugin _plugin_1 = it.getPlugin();
+ String _name_1 = _plugin_1.getName();
+ _builder.append(_name_1, "\t");
+ _builder.append(" Predefined Entries\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("point=\"org.eclipse.gmf.runtime.diagram.ui.paletteProviders\"> ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _xmlGeneratedTag_1 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_1, "\t");
+ _builder.append("\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("<paletteProvider class=\"org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider\">");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<Priority name=\"Lowest\"/>");
+ _builder.newLine();
+ _builder.append("\t\t \t\t");
+ _builder.append("<contribution");
+ _builder.newLine();
+ _builder.append("\t\t \t\t \t");
+ _builder.append("factoryClass=\"");
+ GenDiagram _diagram = it.getDiagram();
+ Palette _palette = _diagram.getPalette();
+ String _packageName = _palette.getPackageName();
+ _builder.append(_packageName, "\t\t \t\t \t");
+ _builder.append(".");
+ GenDiagram _diagram_1 = it.getDiagram();
+ Palette _palette_1 = _diagram_1.getPalette();
+ String _factoryClassName = _palette_1.getFactoryClassName();
+ _builder.append(_factoryClassName, "\t\t \t\t \t");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t \t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/noteTool\" remove=\"true\"/> ");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/textTool\" remove=\"true\"/> ");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/noteattachmentTool\" remove=\"true\"/>");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ GenDiagram _diagram_2 = it.getDiagram();
+ Palette _palette_2 = _diagram_2.getPalette();
+ Iterable<AbstractToolEntry> _collectTools = this._utils_qvto.collectTools(_palette_2);
+ for(final AbstractToolEntry tool : _collectTools) {
+ _builder.append("\t\t");
+ CharSequence _predefinedEntryDefinition = this.predefinedEntryDefinition(tool);
+ _builder.append(_predefinedEntryDefinition, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("</contribution>");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("</paletteProvider>\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("</extension>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence paletteEntries(final GenEditorGenerator it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _xmlGeneratedTag = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("<extension");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("id=\"");
+ GenPlugin _plugin = it.getPlugin();
+ String _name = _plugin.getName();
+ _builder.append(_name, "\t");
+ _builder.append(".standard\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("name=\"");
+ GenPlugin _plugin_1 = it.getPlugin();
+ String _name_1 = _plugin_1.getName();
+ _builder.append(_name_1, "\t");
+ _builder.append(" Standard Palette\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("point=\"org.eclipse.gmf.runtime.diagram.ui.paletteProviders\"> ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _xmlGeneratedTag_1 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_1, "\t");
+ _builder.append("\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("<paletteProvider class=\"org.eclipse.gmf.runtime.diagram.ui.providers.DefaultPaletteProvider\">");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<Priority name=\"Low\"/>");
+ _builder.newLine();
+ _builder.append("\t\t \t\t");
+ _builder.append("<contribution");
+ _builder.newLine();
+ _builder.append("\t\t \t\t \t");
+ _builder.append("factoryClass=\"");
+ GenDiagram _diagram = it.getDiagram();
+ Palette _palette = _diagram.getPalette();
+ String _packageName = _palette.getPackageName();
+ _builder.append(_packageName, "\t\t \t\t \t");
+ _builder.append(".");
+ GenDiagram _diagram_1 = it.getDiagram();
+ Palette _palette_1 = _diagram_1.getPalette();
+ String _factoryClassName = _palette_1.getFactoryClassName();
+ _builder.append(_factoryClassName, "\t\t \t\t \t");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t \t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/noteTool\" remove=\"true\"/> ");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/textTool\" remove=\"true\"/> ");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<predefinedEntry id=\"standardGroup/noteStack/noteattachmentTool\" remove=\"true\"/>");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ {
+ GenDiagram _diagram_2 = it.getDiagram();
+ Palette _palette_2 = _diagram_2.getPalette();
+ EList<ToolGroup> _groups = _palette_2.getGroups();
+ for(final ToolGroup tool : _groups) {
+ _builder.append("\t\t");
+ CharSequence _groupUsage = this.groupUsage(tool);
+ _builder.append(_groupUsage, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("</contribution>");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("<editor id=\"");
+ GenPlugin _plugin_2 = it.getPlugin();
+ String _iD = _plugin_2.getID();
+ _builder.append(_iD, "\t\t");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("</paletteProvider>\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("</extension>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence groupUsage(final ToolGroup it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<entry");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("description=\"");
+ String _description = it.getDescription();
+ _builder.append(_description, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("id=");
+ {
+ String _id = it.getId();
+ boolean _isQuoted = this._utils_qvto.isQuoted(_id, "\"");
+ if (_isQuoted) {
+ String _id_1 = it.getId();
+ _builder.append(_id_1, " ");
+ } else {
+ _builder.append("\"");
+ String _id_2 = it.getId();
+ _builder.append(_id_2, " ");
+ _builder.append("\"");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("kind=\"");
+ {
+ boolean _and = false;
+ boolean _isStack = it.isStack();
+ if (!_isStack) {
+ _and = false;
+ } else {
+ boolean _isToolsOnly = it.isToolsOnly();
+ _and = _isToolsOnly;
+ }
+ if (_and) {
+ _builder.append("stack");
+ } else {
+ _builder.append("drawer");
+ }
+ }
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("label=\"");
+ String _title = it.getTitle();
+ _builder.append(_title, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("large_icon=\"");
+ String _largeIconPath = it.getLargeIconPath();
+ _builder.append(_largeIconPath, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("path=\"");
+ String _path = this.getPath(it);
+ _builder.append(_path, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("small_icon=\"");
+ String _smallIconPath = it.getSmallIconPath();
+ _builder.append(_smallIconPath, " ");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("<expand");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("force=\"true\">");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("</expand>");
+ _builder.newLine();
+ _builder.append("</entry>");
+ _builder.newLine();
+ {
+ EList<ToolGroupItem> _entries = it.getEntries();
+ final Function1<ToolGroupItem, Boolean> _function = new Function1<ToolGroupItem, Boolean>() {
+ public Boolean apply(final ToolGroupItem e) {
+ return Boolean.valueOf((e instanceof ToolEntry));
+ }
+ };
+ Iterable<ToolGroupItem> _filter = IterableExtensions.<ToolGroupItem>filter(_entries, _function);
+ for(final ToolGroupItem entry : _filter) {
+ CharSequence _olUsage = this.toolUsage(entry, it);
+ _builder.append(_olUsage, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<ToolGroupItem> _entries_1 = it.getEntries();
+ final Function1<ToolGroupItem, Boolean> _function_1 = new Function1<ToolGroupItem, Boolean>() {
+ public Boolean apply(final ToolGroupItem e) {
+ return Boolean.valueOf((e instanceof ToolGroup));
+ }
+ };
+ Iterable<ToolGroupItem> _filter_1 = IterableExtensions.<ToolGroupItem>filter(_entries_1, _function_1);
+ for(final ToolGroupItem entry_1 : _filter_1) {
+ CharSequence _olUsage_1 = this.toolUsage(entry_1, it);
+ _builder.append(_olUsage_1, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ private String getPath(final ToolEntry it) {
+ EObject _eContainer = it.eContainer();
+ return this.buildPath(_eContainer);
+ }
+
+ private String getPath(final ToolGroup it) {
+ EObject _eContainer = it.eContainer();
+ return this.buildPath(_eContainer);
+ }
+
+ private String buildPath(final EObject it) {
+ StringBuilder path = new StringBuilder();
+ EObject container = it;
+ while ((container instanceof ToolGroup)) {
+ {
+ String _id = ((ToolGroup) container).getId();
+ String _toolPath = this._utils_qvto.getToolPath(_id);
+ path.insert(0, _toolPath);
+ EObject _eContainer = ((ToolGroup)container).eContainer();
+ container = _eContainer;
+ }
+ }
+ String _xifexpression = null;
+ int _length = path.length();
+ boolean _notEquals = (_length != 0);
+ if (_notEquals) {
+ _xifexpression = path.toString();
+ } else {
+ _xifexpression = "/";
+ }
+ return _xifexpression;
+ }
+
+ protected CharSequence _toolUsage(final ToolEntry it, final ToolGroup group) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<predefinedEntry");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("id=");
+ {
+ String _id = it.getId();
+ boolean _isQuoted = this._utils_qvto.isQuoted(_id, "\"");
+ if (_isQuoted) {
+ String _id_1 = it.getId();
+ _builder.append(_id_1, " ");
+ } else {
+ _builder.append("\"");
+ String _id_2 = it.getId();
+ _builder.append(_id_2, " ");
+ _builder.append("\"");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("path=\"");
+ String _path = this.getPath(it);
+ _builder.append(_path, "\t\t");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("</predefinedEntry>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _toolUsage(final ToolGroup it, final ToolGroup group) {
+ StringConcatenation _builder = new StringConcatenation();
+ Object _groupUsage = this.groupUsage(it);
+ _builder.append(_groupUsage, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence predefinedEntryDefinition(final AbstractToolEntry it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("<entry");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("defineOnly=\"true\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("description=\"");
+ String _description = it.getDescription();
+ _builder.append(_description, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("id=");
+ {
+ String _id = it.getId();
+ boolean _isQuoted = this._utils_qvto.isQuoted(_id, "\"");
+ if (_isQuoted) {
+ String _id_1 = it.getId();
+ _builder.append(_id_1, " ");
+ } else {
+ _builder.append("\"");
+ String _id_2 = it.getId();
+ _builder.append(_id_2, " ");
+ _builder.append("\"");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("kind=\"tool\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("label=\"");
+ String _title = it.getTitle();
+ _builder.append(_title, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("large_icon=\"");
+ String _largeIconPath = it.getLargeIconPath();
+ _builder.append(_largeIconPath, " ");
+ _builder.append("\"");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("path=\"\"");
+ _builder.newLine();
+ _builder.append(" ");
+ _builder.append("small_icon=\"");
+ String _smallIconPath = it.getSmallIconPath();
+ _builder.append(_smallIconPath, " ");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("</entry>");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence toolUsage(final EObject it, final ToolGroup group) {
+ if (it instanceof ToolEntry) {
+ return _toolUsage((ToolEntry)it, group);
+ } else if (it instanceof ToolGroup) {
+ return _toolUsage((ToolGroup)it, group);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, group).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/.gitignore
deleted file mode 100644
index 34c0b8e53a8..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/ViewProvider.java
-/ElementInitializers.java
-/ValidationDecoratorProvider.java
-/ValidationProvider.java
-/extensions.java
-/ElementTypes.java
-/MarkerNavigationProvider.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementInitializers.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementInitializers.java
new file mode 100644
index 00000000000..2423abcfbf2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementInitializers.java
@@ -0,0 +1,376 @@
+/**
+ * Copyright (c) 2007, 2014 Borland Software Corporation, CEA, and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - refactored javaInitilizers not to use methods from GMFGen model
+ * [221347] Got rid of generated interfaces
+ * (IObjectInitializer, IFeatureInitializer) and implementation thereof
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Christian W. Damus (CEA) - bug 440263
+ */
+package aspects.xpt.providers;
+
+import aspects.xpt.Common;
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+import metamodel.MetaModel;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenElementInitializer;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderBase;
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureInitializer;
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureSeqInitializer;
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureValueSpec;
+import org.eclipse.gmf.codegen.gmfgen.GenLanguage;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkEnd;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.gmf.codegen.gmfgen.GenReferenceNewElementSpec;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.ModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.ValueExpression;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
+import org.eclipse.xtext.xbase.lib.Extension;
+import plugin.Activator;
+import xpt.expressions.AbstractExpression;
+import xpt.providers.ElementInitializers_qvto;
+
+/**
+ * XXX should generate this class only when there is initialization logic defined in the model
+ */
+@Singleton
+@SuppressWarnings("all")
+public class ElementInitializers extends xpt.providers.ElementInitializers {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private ElementInitializers_qvto _elementInitializers_qvto;
+
+ @Inject
+ private Activator xptActivator;
+
+ @Inject
+ private AbstractExpression xptAbstractExpression;
+
+ @Inject
+ private MetaModel xptMetaModel;
+
+ protected CharSequence _javaMethod(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _isSansDomain = it.isSansDomain();
+ boolean _not = (!_isSansDomain);
+ if (_not) {
+ TypeModelFacet _modelFacet = it.getModelFacet();
+ CharSequence _javaMethod = this.javaMethod(_modelFacet, it);
+ _builder.append(_javaMethod, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _javaMethod(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _isSansDomain = it.isSansDomain();
+ boolean _not = (!_isSansDomain);
+ if (_not) {
+ LinkModelFacet _modelFacet = it.getModelFacet();
+ CharSequence _javaMethod = this.javaMethod(_modelFacet, it);
+ _builder.append(_javaMethod, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _performInit(final GenFeatureValueSpec it, final GenCommonBase diagramElement, final String instanceVar, final GenClass instanceClass, final List<Integer> counters) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ValueExpression _value = it.getValue();
+ GenExpressionProviderBase _provider = _value.getProvider();
+ GenLanguage _language = _provider.getLanguage();
+ boolean _equals = Objects.equal(_language, GenLanguage.LITERAL_LITERAL);
+ if (_equals) {
+ GenFeature _feature = it.getFeature();
+ ValueExpression _value_1 = it.getValue();
+ String _body = _value_1.getBody();
+ CharSequence _modifyFeature = this.xptMetaModel.modifyFeature(_feature, instanceVar, instanceClass, _body);
+ _builder.append(_modifyFeature, "");
+ _builder.newLineIfNotEmpty();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ } else {
+ String expressionVarName = this._elementInitializers_qvto.getVariableName("value", counters);
+ _builder.newLineIfNotEmpty();
+ _builder.append("Object ");
+ _builder.append(expressionVarName, "");
+ _builder.append(" = ");
+ ValueExpression _value_2 = it.getValue();
+ GenExpressionProviderBase _provider_1 = _value_2.getProvider();
+ CharSequence _evaluateExpr = this.evaluateExpr(_provider_1, diagramElement, it, instanceVar);
+ _builder.append(_evaluateExpr, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _feature_1 = it.getFeature();
+ boolean _isListType = _feature_1.isListType();
+ if (_isListType) {
+ _builder.append("if (");
+ _builder.append(expressionVarName, "");
+ _builder.append(" instanceof java.util.Collection) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ GenFeature _feature_2 = it.getFeature();
+ CharSequence _featureValue = this.xptMetaModel.getFeatureValue(_feature_2, instanceVar, instanceClass, true);
+ _builder.append(_featureValue, " ");
+ _builder.append(".clear();");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _feature_3 = it.getFeature();
+ GenClassifier _typeGenClassifier = _feature_3.getTypeGenClassifier();
+ boolean _expressionResultNeedsCast = this._elementInitializers_qvto.expressionResultNeedsCast(_typeGenClassifier);
+ if (_expressionResultNeedsCast) {
+ _builder.append(" ");
+ _builder.append("for (java.util.Iterator it = ((java.util.Collection) ");
+ _builder.append(expressionVarName, " ");
+ _builder.append(").iterator(); it.hasNext(); ) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append(" ");
+ _builder.append("Object next = ");
+ GenDiagram _diagram = diagramElement.getDiagram();
+ CharSequence _qualifiedClassName = this.xptAbstractExpression.qualifiedClassName(_diagram);
+ _builder.append(_qualifiedClassName, " ");
+ _builder.append(".performCast(it.next(), ");
+ GenFeature _feature_4 = it.getFeature();
+ GenClassifier _typeGenClassifier_1 = _feature_4.getTypeGenClassifier();
+ CharSequence _MetaClass = this.xptMetaModel.MetaClass(_typeGenClassifier_1);
+ _builder.append(_MetaClass, " ");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append(" ");
+ GenFeature _feature_5 = it.getFeature();
+ CharSequence _featureValue_1 = this.xptMetaModel.getFeatureValue(_feature_5, instanceVar, instanceClass, true);
+ _builder.append(_featureValue_1, " ");
+ _builder.append(".add((");
+ GenFeature _feature_6 = it.getFeature();
+ GenClassifier _typeGenClassifier_2 = _feature_6.getTypeGenClassifier();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_typeGenClassifier_2);
+ _builder.append(_QualifiedClassName, " ");
+ _builder.append(") next);");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append(" ");
+ GenFeature _feature_7 = it.getFeature();
+ CharSequence _featureValue_2 = this.xptMetaModel.getFeatureValue(_feature_7, instanceVar, instanceClass, true);
+ _builder.append(_featureValue_2, " ");
+ _builder.append(".addAll(((java.util.Collection) ");
+ _builder.append(expressionVarName, " ");
+ _builder.append("));");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("} else if(");
+ _builder.append(expressionVarName, "");
+ _builder.append(" != null) {");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _feature_8 = it.getFeature();
+ GenClassifier _typeGenClassifier_3 = _feature_8.getTypeGenClassifier();
+ boolean _expressionResultNeedsCast_1 = this._elementInitializers_qvto.expressionResultNeedsCast(_typeGenClassifier_3);
+ if (_expressionResultNeedsCast_1) {
+ _builder.append(" ");
+ _builder.append(expressionVarName, " ");
+ _builder.append(" = ");
+ GenDiagram _diagram_1 = diagramElement.getDiagram();
+ CharSequence _qualifiedClassName_1 = this.xptAbstractExpression.qualifiedClassName(_diagram_1);
+ _builder.append(_qualifiedClassName_1, " ");
+ _builder.append(".performCast(");
+ _builder.append(expressionVarName, " ");
+ _builder.append(", ");
+ GenFeature _feature_9 = it.getFeature();
+ GenClassifier _typeGenClassifier_4 = _feature_9.getTypeGenClassifier();
+ CharSequence _MetaClass_1 = this.xptMetaModel.MetaClass(_typeGenClassifier_4);
+ _builder.append(_MetaClass_1, " ");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" ");
+ GenFeature _feature_10 = it.getFeature();
+ CharSequence _featureValue_3 = this.xptMetaModel.getFeatureValue(_feature_10, instanceVar, instanceClass, true);
+ _builder.append(_featureValue_3, " ");
+ _builder.append(".add((");
+ GenFeature _feature_11 = it.getFeature();
+ GenClassifier _typeGenClassifier_5 = _feature_11.getTypeGenClassifier();
+ CharSequence _QualifiedClassName_1 = this.xptMetaModel.QualifiedClassName(_typeGenClassifier_5);
+ _builder.append(_QualifiedClassName_1, " ");
+ _builder.append(") ");
+ _builder.append(expressionVarName, " ");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append("if(");
+ _builder.append(expressionVarName, "");
+ _builder.append(" != null) {");
+ _builder.newLineIfNotEmpty();
+ {
+ GenFeature _feature_12 = it.getFeature();
+ GenClassifier _typeGenClassifier_6 = _feature_12.getTypeGenClassifier();
+ boolean _expressionResultNeedsCast_2 = this._elementInitializers_qvto.expressionResultNeedsCast(_typeGenClassifier_6);
+ if (_expressionResultNeedsCast_2) {
+ _builder.append(" ");
+ CharSequence _extraLineBreak_1 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_1, " ");
+ _builder.newLineIfNotEmpty();
+ _builder.append(" ");
+ _builder.append(expressionVarName, " ");
+ _builder.append(" = ");
+ GenDiagram _diagram_2 = diagramElement.getDiagram();
+ CharSequence _qualifiedClassName_2 = this.xptAbstractExpression.qualifiedClassName(_diagram_2);
+ _builder.append(_qualifiedClassName_2, " ");
+ _builder.append(".performCast(");
+ _builder.append(expressionVarName, " ");
+ _builder.append(", ");
+ GenFeature _feature_13 = it.getFeature();
+ GenClassifier _typeGenClassifier_7 = _feature_13.getTypeGenClassifier();
+ CharSequence _MetaClass_2 = this.xptMetaModel.MetaClass(_typeGenClassifier_7);
+ _builder.append(_MetaClass_2, " ");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append(" ");
+ GenFeature _feature_14 = it.getFeature();
+ CharSequence _setFeatureValue = this.xptMetaModel.setFeatureValue(_feature_14, instanceVar, instanceClass, expressionVarName, true);
+ _builder.append(_setFeatureValue, " ");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ protected CharSequence _initMethod(final GenFeatureSeqInitializer it, final GenCommonBase diagramElement) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public void init_");
+ String _uniqueIdentifier = diagramElement.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("(");
+ GenClass _elementClass = it.getElementClass();
+ CharSequence _QualifiedClassName = this.xptMetaModel.QualifiedClassName(_elementClass);
+ _builder.append(_QualifiedClassName, "");
+ _builder.append(" instance) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ {
+ EList<GenFeatureInitializer> _initializers = it.getInitializers();
+ for(final GenFeatureInitializer i : _initializers) {
+ _builder.append("\t\t");
+ GenClass _elementClass_1 = it.getElementClass();
+ EList<GenFeatureInitializer> _initializers_1 = it.getInitializers();
+ int _indexOf = _initializers_1.indexOf(i);
+ LinkedList<Integer> _newLinkedList = CollectionLiterals.<Integer>newLinkedList(Integer.valueOf(_indexOf));
+ CharSequence _performInit = this.performInit(i, diagramElement, "instance", _elementClass_1, _newLinkedList);
+ _builder.append(_performInit, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("} catch(RuntimeException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenDiagram _diagram = diagramElement.getDiagram();
+ GenEditorGenerator _editorGen = _diagram.getEditorGen();
+ GenPlugin _plugin = _editorGen.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t");
+ _builder.append(".getInstance().logError(\"Element initialization failed\", e); //$NON-NLS-1$");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence javaMethod(final GenLinkEnd it) {
+ if (it instanceof GenNode) {
+ return _javaMethod((GenNode)it);
+ } else if (it instanceof GenLink) {
+ return _javaMethod((GenLink)it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+
+ public CharSequence performInit(final GenFeatureInitializer it, final GenCommonBase diagramElement, final String instanceVar, final GenClass instanceClass, final List<Integer> counters) {
+ if (it instanceof GenFeatureValueSpec) {
+ return _performInit((GenFeatureValueSpec)it, diagramElement, instanceVar, instanceClass, counters);
+ } else if (it instanceof GenReferenceNewElementSpec) {
+ return _performInit((GenReferenceNewElementSpec)it, diagramElement, instanceVar, instanceClass, counters);
+ } else if (it != null) {
+ return _performInit(it, diagramElement, instanceVar, instanceClass, counters);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, diagramElement, instanceVar, instanceClass, counters).toString());
+ }
+ }
+
+ public CharSequence initMethod(final EObject it, final GenCommonBase diagramElement) {
+ if (it instanceof GenFeatureSeqInitializer) {
+ return _initMethod((GenFeatureSeqInitializer)it, diagramElement);
+ } else if (it instanceof TypeModelFacet) {
+ return _initMethod((TypeModelFacet)it, diagramElement);
+ } else if (it instanceof GenElementInitializer) {
+ return _initMethod((GenElementInitializer)it, diagramElement);
+ } else if (it instanceof ModelFacet) {
+ return _initMethod((ModelFacet)it, diagramElement);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it, diagramElement).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java
new file mode 100644
index 00000000000..58772eb51be
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ElementTypes.java
@@ -0,0 +1,148 @@
+/**
+ * Copyright (c) 2006, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import com.google.common.base.Objects;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.List;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.diagram.Utils_qvto;
+
+@Singleton
+@SuppressWarnings("all")
+public class ElementTypes extends xpt.providers.ElementTypes {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ public CharSequence getElement(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment("Returns \'type\' of the ecore object associated with the hint.\n");
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static synchronized org.eclipse.emf.ecore.ENamedElement getElement(org.eclipse.core.runtime.IAdaptable hint) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Object type = hint.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (elements == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("elements = new java.util.IdentityHashMap<org.eclipse.gmf.runtime.emf.type.core.IElementType, org.eclipse.emf.ecore.ENamedElement>();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ {
+ GenClass _domainDiagramElement = it.getDomainDiagramElement();
+ boolean _notEquals = (!Objects.equal(_domainDiagramElement, null));
+ if (_notEquals) {
+ GenClass _domainDiagramElement_1 = it.getDomainDiagramElement();
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement = this.bindUniqueIdentifierToNamedElement(_domainDiagramElement_1, _uniqueIdentifier);
+ _builder.append(_bindUniqueIdentifierToNamedElement, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenNode> _allNodes = it.getAllNodes();
+ for(final GenNode node : _allNodes) {
+ _builder.append("\t\t");
+ {
+ TypeModelFacet _modelFacet = node.getModelFacet();
+ boolean _notEquals_1 = (!Objects.equal(_modelFacet, null));
+ if (_notEquals_1) {
+ TypeModelFacet _modelFacet_1 = node.getModelFacet();
+ String _uniqueIdentifier_1 = node.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement_1 = this.bindUniqueIdentifierToNamedElement(_modelFacet_1, _uniqueIdentifier_1);
+ _builder.append(_bindUniqueIdentifierToNamedElement_1, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenLink> _links = it.getLinks();
+ for(final GenLink link : _links) {
+ _builder.append("\t\t");
+ {
+ LinkModelFacet _modelFacet_2 = link.getModelFacet();
+ boolean _notEquals_2 = (!Objects.equal(_modelFacet_2, null));
+ if (_notEquals_2) {
+ LinkModelFacet _modelFacet_3 = link.getModelFacet();
+ String _uniqueIdentifier_2 = link.getUniqueIdentifier();
+ CharSequence _bindUniqueIdentifierToNamedElement_2 = this.bindUniqueIdentifierToNamedElement(_modelFacet_3, _uniqueIdentifier_2);
+ _builder.append(_bindUniqueIdentifierToNamedElement_2, "\t\t");
+ }
+ }
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return elements.get(type);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence isKnownElementType(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static synchronized boolean isKnownElementType(org.eclipse.gmf.runtime.emf.type.core.IElementType elementType) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (KNOWN_ELEMENT_TYPES == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("KNOWN_ELEMENT_TYPES = new java.util.HashSet<org.eclipse.gmf.runtime.emf.type.core.IElementType>();");
+ _builder.newLine();
+ {
+ List<GenCommonBase> _allTypedElements = this._utils_qvto.getAllTypedElements(it);
+ for(final GenCommonBase e : _allTypedElements) {
+ _builder.append("\t\t");
+ CharSequence _addKnownElementType = this.addKnownElementType(e);
+ _builder.append(_addKnownElementType, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return KNOWN_ELEMENT_TYPES.contains(elementType);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java
new file mode 100644
index 00000000000..692dc7b057a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/MarkerNavigationProvider.java
@@ -0,0 +1,254 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+
+@Singleton
+@SuppressWarnings("all")
+public class MarkerNavigationProvider extends xpt.providers.MarkerNavigationProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ public CharSequence MarkerNavigationProvider(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("extends org.eclipse.gmf.runtime.emf.ui.providers.marker.AbstractModelMarkerNavigationProvider {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static final String MARKER_TYPE =");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_1.getPlugin();
+ String _activatorQualifiedClassName = _plugin.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName, "\t\t");
+ _builder.append(".ID + \".");
+ String _validationDiagnosticMarkerType = it.getValidationDiagnosticMarkerType();
+ _builder.append(_validationDiagnosticMarkerType, "\t\t");
+ _builder.append("\"; ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("protected void doGotoMarker(org.eclipse.core.resources.IMarker marker) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("String elementId = marker.getAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, null);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (elementId == null || !(getEditor() instanceof org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor editor =");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("(org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditor) getEditor();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("java.util.Map<?, ?> editPartRegistry = editor.getDiagramGraphicalViewer().getEditPartRegistry();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject targetView = editor.getDiagram().eResource().getEObject(elementId);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetView == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.EditPart targetEditPart = (org.eclipse.gef.EditPart) editPartRegistry.get(targetView);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (targetEditPart != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ String _diagramEditorUtilQualifiedClassName = it.getDiagramEditorUtilQualifiedClassName();
+ _builder.append(_diagramEditorUtilQualifiedClassName, "\t\t\t");
+ _builder.append(".selectElementsInDiagram(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("editor, java.util.Arrays.asList(new org.eclipse.gef.EditPart[] { targetEditPart }));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static void deleteMarkers(org.eclipse.core.resources.IResource resource) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("resource.deleteMarkers(MARKER_TYPE, true, org.eclipse.core.resources.IResource.DEPTH_ZERO);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (org.eclipse.core.runtime.CoreException e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_2.getPlugin();
+ String _activatorQualifiedClassName_1 = _plugin_1.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName_1, "\t\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("\"Failed to delete validation markers\", e); ");
+ CharSequence _nonNLS_1 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_1, "\t\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public static org.eclipse.core.resources.IMarker addMarker(org.eclipse.core.resources.IFile file,");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("String elementId, String location, String message, int statusSeverity) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.core.resources.IMarker marker = null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker = file.createMarker(MARKER_TYPE);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.MESSAGE, message);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.LOCATION, location);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, elementId);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("int markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_INFO;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (statusSeverity == org.eclipse.core.runtime.IStatus.WARNING) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_WARNING; \t\t\t\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else if (statusSeverity == org.eclipse.core.runtime.IStatus.ERROR ||");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("statusSeverity == org.eclipse.core.runtime.IStatus.CANCEL) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_ERROR;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("marker.setAttribute(org.eclipse.core.resources.IMarker.SEVERITY, markerSeverity);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} catch (org.eclipse.core.runtime.CoreException e) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenPlugin _plugin_2 = _editorGen_3.getPlugin();
+ String _activatorQualifiedClassName_2 = _plugin_2.getActivatorQualifiedClassName();
+ _builder.append(_activatorQualifiedClassName_2, "\t\t");
+ _builder.append(".getInstance().logError(");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("\"Failed to create validation marker\", e); ");
+ CharSequence _nonNLS_2 = this._common.nonNLS(1);
+ _builder.append(_nonNLS_2, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return marker;\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationDecoratorProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationDecoratorProvider.java
new file mode 100644
index 00000000000..218e9c3564a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationDecoratorProvider.java
@@ -0,0 +1,192 @@
+/**
+ * Copyright (c) 2007, 2009, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Ansgar Radermacher (CEA LIST) - added support for EMF validation
+ */
+package aspects.xpt.providers;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorView;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import xpt.Common;
+import xpt.editor.Editor;
+import xpt.editor.VisualIDRegistry;
+
+/**
+ * FIXME: [MG] monolithic template with most of the code "same-generated".
+ * Unfortunately, a lot of the logic is based around «IF editorGen.application == null» and we don't have a good ways to deal with taht in GMFT-runtimw
+ */
+@Singleton
+@SuppressWarnings("all")
+public class ValidationDecoratorProvider extends xpt.providers.ValidationDecoratorProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ private Editor xptEditor;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ public CharSequence ValidationDecoratorProvider(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("extends org.eclipse.papyrus.uml.diagram.common.providers.ValidationDecoratorProvider");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("implements org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorProvider {");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public void createDecorators(org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorTarget decoratorTarget) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gef.EditPart editPart = (org.eclipse.gef.EditPart) decoratorTarget.getAdapter(org.eclipse.gef.EditPart.class);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (editPart instanceof org.eclipse.gmf.runtime.diagram.ui.editparts.GraphicalEditPart ||");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("editPart instanceof org.eclipse.gef.editparts.AbstractConnectionEditPart) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("Object model = editPart.getModel();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if ((model instanceof org.eclipse.gmf.runtime.notation.View)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View) model;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (!(view instanceof org.eclipse.gmf.runtime.notation.Edge) && !view.isSetElement()) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gef.EditDomain ed = editPart.getViewer().getEditDomain();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (!(ed instanceof org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditDomain)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (((org.eclipse.gmf.runtime.diagram.ui.parts.DiagramEditDomain) ed).getEditorPart() instanceof");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ GenEditorView _editor = _editorGen_1.getEditor();
+ CharSequence _qualifiedClassName = this.xptEditor.qualifiedClassName(_editor);
+ _builder.append(_qualifiedClassName, "\t\t\t\t\t");
+ _builder.append(") {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("decoratorTarget.installDecorator(KEY, new StatusDecorator(decoratorTarget));");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean provides(org.eclipse.gmf.runtime.common.core.service.IOperation operation) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (!(operation instanceof org.eclipse.gmf.runtime.diagram.ui.services.decorator.CreateDecoratorsOperation)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.ui.services.decorator.IDecoratorTarget decoratorTarget =");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.diagram.ui.services.decorator.CreateDecoratorsOperation) operation).getDecoratorTarget();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View) decoratorTarget.getAdapter(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.View.class);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return view != null && ");
+ CharSequence _modelID = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t\t");
+ _builder.append(".equals(");
+ CharSequence _modelIDMethodCall = this.xptVisualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall, "\t\t");
+ _builder.append("(view));");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationProvider.java
new file mode 100644
index 00000000000..72642e9a204
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ValidationProvider.java
@@ -0,0 +1,288 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - introduced GenAuditContext entity
+ * straightforward and simple #validate() implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.gmf.codegen.gmfgen.GenAuditContext;
+import org.eclipse.gmf.codegen.gmfgen.GenAuditRoot;
+import org.eclipse.gmf.codegen.gmfgen.GenAuditRule;
+import org.eclipse.gmf.codegen.gmfgen.GenAuditable;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagramElementTarget;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExpressionProviderContainer;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import plugin.Activator;
+import xpt.CodeStyle;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.GenAuditRoot_qvto;
+import xpt.editor.VisualIDRegistry;
+
+@Singleton
+@SuppressWarnings("all")
+public class ValidationProvider extends xpt.providers.ValidationProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private GenAuditRoot_qvto _genAuditRoot_qvto;
+
+ @Inject
+ @Extension
+ private CodeStyle _codeStyle;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private Activator xptActivator;
+
+ public CharSequence selectors(final GenAuditRoot it) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _notEquals = (!Objects.equal(it, null));
+ if (_notEquals) {
+ {
+ EList<GenAuditContext> _clientContexts = it.getClientContexts();
+ boolean _notEquals_1 = (!Objects.equal(_clientContexts, null));
+ if (_notEquals_1) {
+ {
+ EList<GenAuditContext> _clientContexts_1 = it.getClientContexts();
+ for(final GenAuditContext ctx : _clientContexts_1) {
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static class ");
+ String _className = ctx.getClassName();
+ _builder.append(_className, "");
+ _builder.append(" implements org.eclipse.emf.validation.model.IClientSelector {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public boolean selects(Object object) {");
+ _builder.newLine();
+ {
+ EList<GenAuditable> _ruleTargets = ctx.getRuleTargets();
+ Iterable<GenDiagramElementTarget> _filter = Iterables.<GenDiagramElementTarget>filter(_ruleTargets, GenDiagramElementTarget.class);
+ boolean _notEmpty = this._common_qvto.<GenDiagramElementTarget>notEmpty(_filter);
+ if (_notEmpty) {
+ _builder.append("\t");
+ _builder.append("if (isInDefaultEditorContext(object) && object instanceof org.eclipse.gmf.runtime.notation.View) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("final int id = ");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenDiagram _diagram = _editorGen.getDiagram();
+ CharSequence _visualIDMethodCall = this.xptVisualIDRegistry.getVisualIDMethodCall(_diagram);
+ _builder.append(_visualIDMethodCall, "\t\t");
+ _builder.append("((org.eclipse.gmf.runtime.notation.View) object);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("boolean result = false;");
+ _builder.newLine();
+ {
+ Iterable<GenCommonBase> _targetDiagramElements = this._genAuditRoot_qvto.getTargetDiagramElements(ctx);
+ for(final GenCommonBase e : _targetDiagramElements) {
+ _builder.append("\t");
+ _builder.append("result = result || id == ");
+ CharSequence _visualID = VisualIDRegistry.visualID(e);
+ _builder.append(_visualID, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("\t");
+ _builder.append("return result;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("return isInDefaultEditorContext(object);");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence constraintAdapters(final GenAuditRoot it, final GenDiagram diagram) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ boolean _notEquals = (!Objects.equal(it, null));
+ if (_notEquals) {
+ {
+ GenEditorGenerator _editorGen = diagram.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders = _editorGen.getExpressionProviders();
+ boolean _notEquals_1 = (!Objects.equal(_expressionProviders, null));
+ if (_notEquals_1) {
+ {
+ EList<GenAuditRule> _rules = it.getRules();
+ final Function1<GenAuditRule, Boolean> _function = new Function1<GenAuditRule, Boolean>() {
+ public Boolean apply(final GenAuditRule a) {
+ return Boolean.valueOf(a.isRequiresConstraintAdapter());
+ }
+ };
+ Iterable<GenAuditRule> _filter = IterableExtensions.<GenAuditRule>filter(_rules, _function);
+ for(final GenAuditRule next : _filter) {
+ GenEditorGenerator _editorGen_1 = diagram.getEditorGen();
+ GenExpressionProviderContainer _expressionProviders_1 = _editorGen_1.getExpressionProviders();
+ CharSequence _constraintAdapter = this.constraintAdapter(next, _expressionProviders_1);
+ _builder.append(_constraintAdapter, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ {
+ EList<GenAuditRule> _rules_1 = it.getRules();
+ final Function1<GenAuditRule, Boolean> _function_1 = new Function1<GenAuditRule, Boolean>() {
+ public Boolean apply(final GenAuditRule a) {
+ return Boolean.valueOf(a.isRequiresConstraintAdapter());
+ }
+ };
+ boolean _exists = IterableExtensions.<GenAuditRule>exists(_rules_1, _function_1);
+ if (_exists) {
+ CharSequence _constraintAdapters_formatMethod = this.constraintAdapters_formatMethod(it);
+ _builder.append(_constraintAdapters_formatMethod, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ }
+ }
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence runWithActiveConstraints(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public static void runWithConstraints(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain, Runnable operation) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final Runnable op = operation;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("Runnable task = new Runnable() {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _overrideI = this._codeStyle.overrideI(it);
+ _builder.append(_overrideI, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public void run() {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("constraintsActive = true;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("op.run();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} finally {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("constraintsActive = false;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("};");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(editingDomain != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("try {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("editingDomain.runExclusive(task);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} catch (Exception e) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ GenPlugin _plugin = _editorGen.getPlugin();
+ CharSequence _qualifiedClassName = this.xptActivator.qualifiedClassName(_plugin);
+ _builder.append(_qualifiedClassName, "\t\t\t");
+ _builder.append(".getInstance().logError(\"Validation failed\", e); ");
+ CharSequence _nonNLS = this._common.nonNLS(1);
+ _builder.append(_nonNLS, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("task.run();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ViewProvider.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ViewProvider.java
new file mode 100644
index 00000000000..8c8958a818c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/ViewProvider.java
@@ -0,0 +1,2191 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Alexander Shatalin (Borland) - initial API and implementation
+ * Artem Tikhomirov (Borland) - [257119] Create views directly, not through ViewFactories
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ * Vincent Lorenzo (CEA-LIST) Add a line to initialize the display of the compartments to true
+ * Vincent Lorenzo (CEA-LIST) - Add lines to initialize the display of the labels - Bug 335987 [General][Enhancement] Show/Hide Connectors Labels and External Nodes Labels
+ */
+package aspects.xpt.providers;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.ElementType;
+import org.eclipse.gmf.codegen.gmfgen.GenChildLabelNode;
+import org.eclipse.gmf.codegen.gmfgen.GenChildNode;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.LabelModelFacet;
+import org.eclipse.gmf.codegen.gmfgen.MetamodelType;
+import org.eclipse.gmf.codegen.gmfgen.NotationType;
+import org.eclipse.gmf.codegen.gmfgen.SpecializationType;
+import org.eclipse.gmf.codegen.gmfgen.Viewmap;
+import org.eclipse.papyrus.papyrusgmfgenextension.LabelVisibilityPreference;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import xpt.Common;
+import xpt.Common_qvto;
+import xpt.diagram.Utils_qvto;
+import xpt.diagram.ViewmapAttributesUtils_qvto;
+import xpt.diagram.editpolicies.LinkUtils_qvto;
+import xpt.diagram.views.ViewStyles;
+import xpt.editor.VisualIDRegistry;
+
+@Singleton
+@SuppressWarnings("all")
+public class ViewProvider extends xpt.providers.ViewProvider {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Common_qvto _common_qvto;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ @Extension
+ private LinkUtils_qvto _linkUtils_qvto;
+
+ @Inject
+ @Extension
+ private ViewmapAttributesUtils_qvto _viewmapAttributesUtils_qvto;
+
+ @Inject
+ @Extension
+ private VisualIDRegistry _visualIDRegistry;
+
+ @Inject
+ private VisualIDRegistry xptVisualIDRegistry;
+
+ @Inject
+ private ViewStyles xptViewStyles;
+
+ public CharSequence ViewProvider(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("\t");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ CharSequence _copyright = this._common.copyright(_editorGen);
+ _builder.append(_copyright, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("package ");
+ CharSequence _packageName = this.packageName(it);
+ _builder.append(_packageName, "\t");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedClassComment = this._common.generatedClassComment();
+ _builder.append(_generatedClassComment, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("public class ");
+ CharSequence _className = this.className(it);
+ _builder.append(_className, "\t");
+ _builder.append(" ");
+ CharSequence _extendsList = this.extendsList(it);
+ _builder.append(_extendsList, "\t");
+ CharSequence _implementsList = this.implementsList(it);
+ _builder.append(_implementsList, "\t");
+ _builder.append(" {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public final boolean provides(org.eclipse.gmf.runtime.common.core.service.IOperation operation) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (operation instanceof org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return provides((org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation) operation);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence __assert = this._common._assert("operation instanceof org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewOperation");
+ _builder.append(__assert, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("if (operation instanceof org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return provides((org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation) operation);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else if (operation instanceof org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return provides((org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation) operation);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("} else if (operation instanceof org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return provides((org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation) operation);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected boolean provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateViewForKindOperation op) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (op.getViewKind() == Node.class)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return getNodeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (op.getViewKind() == Edge.class)");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return getEdgeViewClass(op.getSemanticAdapter(), op.getContainerView(), op.getSemanticHint()) != null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("// check Diagram Type should be the class diagram");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("String modelID = ");
+ CharSequence _modelIDMethodCall = this._visualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall, "\t ");
+ _builder.append("(op.getContainerView());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("if(!getDiagramProvidedId().equals(modelID)) {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("int visualID = ");
+ CharSequence _visualIDMethodCall = this._visualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall, "\t ");
+ _builder.append("(op.getSemanticHint());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("if(org.eclipse.gmf.runtime.notation.Node.class.isAssignableFrom(op.getViewKind())) {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("return ");
+ CharSequence _canCreateNodeMethodCall = this._visualIDRegistry.canCreateNodeMethodCall(it);
+ _builder.append(_canCreateNodeMethodCall, "\t ");
+ _builder.append("(op.getContainerView(), visualID);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return true;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("protected String getDiagramProvidedId() {");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("/*");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* Indicates for which diagram this provider works for.");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* <p>");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* This method can be overloaded when diagram editor inherits from another one, but should never be <code>null</code>");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* </p>");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* ");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("* @return the unique identifier of the diagram for which views are provided.");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("*/");
+ _builder.newLine();
+ _builder.append("\t ");
+ _builder.append("return ");
+ CharSequence _modelID = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID, "\t ");
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t ");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_3 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_3, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected boolean provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation op) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return ");
+ CharSequence _modelID_1 = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_1, "\t\t\t");
+ _builder.append(".equals(op.getSemanticHint())");
+ {
+ GenClass _domainDiagramElement = it.getDomainDiagramElement();
+ boolean _notEquals = (!Objects.equal(_domainDiagramElement, null));
+ if (_notEquals) {
+ _builder.append(" && ");
+ CharSequence _diagramVisualIDMethodCall = this.xptVisualIDRegistry.getDiagramVisualIDMethodCall(it);
+ _builder.append(_diagramVisualIDMethodCall, "\t\t\t");
+ _builder.append("(getSemanticElement(op.getSemanticAdapter())) != -1");
+ }
+ }
+ _builder.append(";");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_4 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_4, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected boolean provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateNodeViewOperation op) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (op.getContainerView() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType elementType = getSemanticElementType(op.getSemanticAdapter());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.emf.ecore.EObject domainElement = getSemanticElement(op.getSemanticAdapter());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("int visualID;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (op.getSemanticHint() == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// Semantic hint is not specified. Can be a result of call from CanonicalEditPolicy.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// In this situation there should be NO elementType, visualID will be determined");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("// by VisualIDRegistry.getNodeVisualID() for domainElement.");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (elementType != null || domainElement == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("visualID = ");
+ CharSequence _nodeVisualIDMethodCall = this.xptVisualIDRegistry.getNodeVisualIDMethodCall(it);
+ _builder.append(_nodeVisualIDMethodCall, "\t\t\t\t");
+ _builder.append("(op.getContainerView(), domainElement);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("visualID = ");
+ CharSequence _visualIDMethodCall_1 = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall_1, "\t\t\t\t");
+ _builder.append("(op.getSemanticHint());");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (elementType != null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("if (!");
+ String _elementTypesQualifiedClassName = it.getElementTypesQualifiedClassName();
+ _builder.append(_elementTypesQualifiedClassName, "\t\t\t\t");
+ _builder.append(".isKnownElementType(elementType) || (!(elementType instanceof org.eclipse.gmf.runtime.emf.type.core.IHintedType))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t\t\t");
+ _builder.append("return false; // foreign element type");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("String elementTypeHint = ((org.eclipse.gmf.runtime.emf.type.core.IHintedType) elementType).getSemanticHint();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (!op.getSemanticHint().equals(elementTypeHint)) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return false; // if semantic hint is specified it should be the same as in element type");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("//if (domainElement != null && visualID != ");
+ CharSequence _nodeVisualIDMethodCall_1 = this._visualIDRegistry.getNodeVisualIDMethodCall(it);
+ _builder.append(_nodeVisualIDMethodCall_1, "\t\t\t");
+ _builder.append("(op.getContainerView(), domainElement)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("//\treturn false; // visual id for node EClass should match visual id from element type");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("//}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ {
+ List<GenCommonBase> _allTypedElements = this._utils_qvto.getAllTypedElements(it);
+ final Function1<GenCommonBase, Boolean> _function = new Function1<GenCommonBase, Boolean>() {
+ public Boolean apply(final GenCommonBase e) {
+ ElementType _elementType = e.getElementType();
+ return Boolean.valueOf((!Objects.equal(_elementType, null)));
+ }
+ };
+ Iterable<GenCommonBase> _filter = IterableExtensions.<GenCommonBase>filter(_allTypedElements, _function);
+ boolean _isEmpty = IterableExtensions.isEmpty(_filter);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ _builder.append("\t\t\t");
+ _builder.append("if (!");
+ CharSequence _modelID_2 = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_2, "\t\t\t");
+ _builder.append(".equals(");
+ CharSequence _modelIDMethodCall_1 = this.xptVisualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall_1, "\t\t\t");
+ _builder.append("(op.getContainerView()))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\t");
+ _builder.append("return false; // foreign diagram");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("switch (visualID) {");
+ _builder.newLine();
+ {
+ EList<GenNode> _allNodes = it.getAllNodes();
+ final Function1<GenNode, Boolean> _function_1 = new Function1<GenNode, Boolean>() {
+ public Boolean apply(final GenNode e) {
+ ElementType _elementType = e.getElementType();
+ return Boolean.valueOf((_elementType instanceof NotationType));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenNode>exists(_allNodes, _function_1);
+ if (_exists) {
+ {
+ EList<GenNode> _allNodes_1 = it.getAllNodes();
+ final Function1<GenNode, ElementType> _function_2 = new Function1<GenNode, ElementType>() {
+ public ElementType apply(final GenNode e) {
+ return e.getElementType();
+ }
+ };
+ List<ElementType> _map = ListExtensions.<GenNode, ElementType>map(_allNodes_1, _function_2);
+ Iterable<NotationType> _filter_1 = Iterables.<NotationType>filter(_map, NotationType.class);
+ for(final NotationType e : _filter_1) {
+ _builder.append("\t\t\t");
+ CharSequence _localCaseVisualID = this.localCaseVisualID(e);
+ _builder.append(_localCaseVisualID, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("break; // pure design element");
+ _builder.newLine();
+ }
+ }
+ {
+ EList<GenNode> _allNodes_2 = it.getAllNodes();
+ final Function1<GenNode, Boolean> _function_3 = new Function1<GenNode, Boolean>() {
+ public Boolean apply(final GenNode e) {
+ boolean _or = false;
+ ElementType _elementType = e.getElementType();
+ if ((_elementType instanceof MetamodelType)) {
+ _or = true;
+ } else {
+ ElementType _elementType_1 = e.getElementType();
+ _or = (_elementType_1 instanceof SpecializationType);
+ }
+ return Boolean.valueOf(_or);
+ }
+ };
+ boolean _exists_1 = IterableExtensions.<GenNode>exists(_allNodes_2, _function_3);
+ if (_exists_1) {
+ {
+ EList<GenNode> _allNodes_3 = it.getAllNodes();
+ final Function1<GenNode, ElementType> _function_4 = new Function1<GenNode, ElementType>() {
+ public ElementType apply(final GenNode e) {
+ return e.getElementType();
+ }
+ };
+ List<ElementType> _map_1 = ListExtensions.<GenNode, ElementType>map(_allNodes_3, _function_4);
+ Iterable<MetamodelType> _filter_2 = Iterables.<MetamodelType>filter(_map_1, MetamodelType.class);
+ for(final MetamodelType e_1 : _filter_2) {
+ _builder.append("\t\t\t");
+ CharSequence _localCaseVisualID_1 = this.localCaseVisualID(e_1);
+ _builder.append(_localCaseVisualID_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenNode> _allNodes_4 = it.getAllNodes();
+ final Function1<GenNode, ElementType> _function_5 = new Function1<GenNode, ElementType>() {
+ public ElementType apply(final GenNode e) {
+ return e.getElementType();
+ }
+ };
+ List<ElementType> _map_2 = ListExtensions.<GenNode, ElementType>map(_allNodes_4, _function_5);
+ Iterable<SpecializationType> _filter_3 = Iterables.<SpecializationType>filter(_map_2, SpecializationType.class);
+ for(final SpecializationType e_2 : _filter_3) {
+ _builder.append("\t\t\t");
+ CharSequence _localCaseVisualID_2 = this.localCaseVisualID(e_2);
+ _builder.append(_localCaseVisualID_2, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("if (domainElement == null || visualID != ");
+ CharSequence _nodeVisualIDMethodCall_2 = this.xptVisualIDRegistry.getNodeVisualIDMethodCall(it);
+ _builder.append(_nodeVisualIDMethodCall_2, "\t\t\t");
+ _builder.append("(op.getContainerView(), domainElement)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\t");
+ _builder.append("return false; // visual id in semantic hint should match visual id for domain element");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("break;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("default:");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ } else {
+ _builder.append("\t\t\t");
+ _builder.append("return false;");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("return ");
+ CharSequence _canCreateNodeMethodCall_1 = this._visualIDRegistry.canCreateNodeMethodCall(it);
+ _builder.append(_canCreateNodeMethodCall_1, "\t\t\t\t");
+ _builder.append("(op.getContainerView(), visualID);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_5 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_5, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected boolean provides(org.eclipse.gmf.runtime.diagram.core.services.view.CreateEdgeViewOperation op) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType elementType = getSemanticElementType(op.getSemanticAdapter());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//RS: add code for extended types creation");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(elementType instanceof org.eclipse.papyrus.infra.extendedtypes.types.IExtendedHintedElementType) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType closestNonExtendedType = org.eclipse.papyrus.infra.extendedtypes.util.ElementTypeUtils.getClosestDiagramType(elementType);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(!");
+ String _elementTypesQualifiedClassName_1 = it.getElementTypesQualifiedClassName();
+ _builder.append(_elementTypesQualifiedClassName_1, "\t\t");
+ _builder.append(".isKnownElementType(closestNonExtendedType) || (!(closestNonExtendedType instanceof org.eclipse.gmf.runtime.emf.type.core.IHintedType))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return false; // foreign element type.");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if (!");
+ String _elementTypesQualifiedClassName_2 = it.getElementTypesQualifiedClassName();
+ _builder.append(_elementTypesQualifiedClassName_2, "\t\t");
+ _builder.append(".isKnownElementType(elementType) || (!(elementType instanceof org.eclipse.gmf.runtime.emf.type.core.IHintedType))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("return false; // foreign element type");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//if (!");
+ String _elementTypesQualifiedClassName_3 = it.getElementTypesQualifiedClassName();
+ _builder.append(_elementTypesQualifiedClassName_3, "\t");
+ _builder.append(".isKnownElementType(elementType) || (!(elementType instanceof org.eclipse.gmf.runtime.emf.type.core.IHintedType))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//\treturn false; // foreign element type");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("// END R.S.");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String elementTypeHint = ((org.eclipse.gmf.runtime.emf.type.core.IHintedType) elementType).getSemanticHint();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (elementTypeHint == null || (op.getSemanticHint() != null && !elementTypeHint.equals(op.getSemanticHint()))) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return false; // our hint is visual id and must be specified, and it should be the same as in element type");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//int visualID = ");
+ CharSequence _visualIDMethodCall_2 = this._visualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall_2, "\t");
+ _builder.append("(elementTypeHint);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//org.eclipse.emf.ecore.EObject domainElement = getSemanticElement(op.getSemanticAdapter());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//if (domainElement != null && visualID != ");
+ CharSequence _linkWithClassVisualIDMethodCall = this._visualIDRegistry.getLinkWithClassVisualIDMethodCall(it);
+ _builder.append(_linkWithClassVisualIDMethodCall, "\t");
+ _builder.append("(domainElement)) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//\treturn false; // visual id for link EClass should match visual id from element type");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return true; ");
+ _builder.append("\t}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_6 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_6, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("@SuppressWarnings(\"unchecked\")");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("public org.eclipse.gmf.runtime.notation.Diagram createDiagram(org.eclipse.core.runtime.IAdaptable semanticAdapter, String diagramKind, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Diagram diagram = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDiagram();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.common.reconciler.DiagramVersioningUtils.stampCurrentVersion(diagram);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("diagram.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDiagramStyle());");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ CharSequence _addCustomStyles = this.xptViewStyles.addCustomStyles(it, "diagram.getStyles()");
+ _builder.append(_addCustomStyles, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("diagram.setType(");
+ CharSequence _modelID_3 = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_3, "\t\t\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("diagram.setElement(");
+ {
+ GenClass _domainDiagramElement_1 = it.getDomainDiagramElement();
+ boolean _notEquals_1 = (!Objects.equal(_domainDiagramElement_1, null));
+ if (_notEquals_1) {
+ _builder.append("getSemanticElement(semanticAdapter)");
+ } else {
+ _builder.append("null");
+ }
+ }
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ {
+ String _units = it.getUnits();
+ boolean _notEquals_2 = (!Objects.equal(_units, null));
+ if (_notEquals_2) {
+ _builder.append("\t\t");
+ _builder.append("diagram.setMeasurementUnit(org.eclipse.gmf.runtime.notation.MeasurementUnit.");
+ String _units_1 = it.getUnits();
+ String _upperCase = _units_1.toUpperCase();
+ _builder.append(_upperCase, "\t\t");
+ _builder.append("_LITERAL);");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenClass> _styles = it.getStyles();
+ boolean _isEmpty_1 = _styles.isEmpty();
+ boolean _not_1 = (!_isEmpty_1);
+ if (_not_1) {
+ _builder.append("\t\t");
+ _builder.append("// initializeFromPreferences");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.jface.preferences.IPreferenceStore store = (org.eclipse.jface.preferences.IPreferenceStore) preferencesHint.getPreferenceStore();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _initializeStyles = this.initializeStyles(it, "diagram", "store", false, false, false);
+ _builder.append(_initializeStyles, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t");
+ _builder.append("return diagram;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_7 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_7, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public org.eclipse.gmf.runtime.notation.Node createNode(org.eclipse.core.runtime.IAdaptable semanticAdapter, org.eclipse.gmf.runtime.notation.View containerView, String semanticHint, int index, boolean persisted, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("final org.eclipse.emf.ecore.EObject domainElement = getSemanticElement(semanticAdapter);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("final int visualID;");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("if (semanticHint == null) {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("visualID = ");
+ CharSequence _nodeVisualIDMethodCall_3 = this.xptVisualIDRegistry.getNodeVisualIDMethodCall(it);
+ _builder.append(_nodeVisualIDMethodCall_3, "\t\t\t\t");
+ _builder.append("(containerView, domainElement);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("visualID = ");
+ CharSequence _visualIDMethodCall_3 = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall_3, "\t\t\t\t");
+ _builder.append("(semanticHint);");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("switch(visualID) {");
+ _builder.newLine();
+ {
+ EList<GenNode> _allNodes_5 = it.getAllNodes();
+ for(final GenNode n : _allNodes_5) {
+ _builder.append("\t\t\t");
+ CharSequence _caseVisualID = this.xptVisualIDRegistry.caseVisualID(n);
+ _builder.append(_caseVisualID, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\t");
+ _builder.append("return create");
+ String _uniqueIdentifier = n.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "\t\t\t\t");
+ _builder.append("(domainElement, containerView, index, persisted, preferencesHint);");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// can\'t happen, provided #provides(CreateNodeViewOperation) is correct");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_8 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_8, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("public org.eclipse.gmf.runtime.notation.Edge createEdge(org.eclipse.core.runtime.IAdaptable semanticAdapter, org.eclipse.gmf.runtime.notation.View containerView, String semanticHint, int index, boolean persisted, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("org.eclipse.gmf.runtime.emf.type.core.IElementType elementType = getSemanticElementType(semanticAdapter);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("String elementTypeHint = ((org.eclipse.gmf.runtime.emf.type.core.IHintedType) elementType).getSemanticHint();");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("switch (");
+ CharSequence _visualIDMethodCall_4 = this.xptVisualIDRegistry.getVisualIDMethodCall(it);
+ _builder.append(_visualIDMethodCall_4, "\t\t\t");
+ _builder.append("(elementTypeHint)) {");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLink> _links = it.getLinks();
+ for(final GenLink link : _links) {
+ _builder.append("\t\t\t");
+ CharSequence _caseVisualID_1 = this.xptVisualIDRegistry.caseVisualID(link);
+ _builder.append(_caseVisualID_1, "\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t\t");
+ _builder.append("\t");
+ _builder.append("return create");
+ String _uniqueIdentifier_1 = link.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier_1, "\t\t\t\t");
+ _builder.append("(");
+ {
+ boolean _isTypeLink = this._linkUtils_qvto.isTypeLink(link);
+ if (_isTypeLink) {
+ _builder.append(" getSemanticElement(semanticAdapter), ");
+ }
+ }
+ _builder.append("containerView, index, persisted, preferencesHint);");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("// can never happen, provided #provides(CreateEdgeViewOperation) is correct");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ EList<GenNode> _allNodes_6 = it.getAllNodes();
+ for(final GenNode next : _allNodes_6) {
+ _builder.append("\t\t");
+ CharSequence _createNodeMethod = this.createNodeMethod(next);
+ _builder.append(_createNodeMethod, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenLink> _links_1 = it.getLinks();
+ for(final GenLink next_1 : _links_1) {
+ _builder.append("\t\t");
+ CharSequence _createEdgeMethod = this.createEdgeMethod(next_1);
+ _builder.append(_createEdgeMethod, "\t\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ EList<GenTopLevelNode> _topLevelNodes = it.getTopLevelNodes();
+ boolean _isEmpty_2 = _topLevelNodes.isEmpty();
+ boolean _not_2 = (!_isEmpty_2);
+ if (_not_2) {
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_9 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_9, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected void stampShortcut(org.eclipse.gmf.runtime.notation.View containerView, org.eclipse.gmf.runtime.notation.Node target) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("if (!");
+ CharSequence _modelID_4 = VisualIDRegistry.modelID(it);
+ _builder.append(_modelID_4, "\t\t\t");
+ _builder.append(".equals(");
+ CharSequence _modelIDMethodCall_2 = this.xptVisualIDRegistry.getModelIDMethodCall(it);
+ _builder.append(_modelIDMethodCall_2, "\t\t\t");
+ _builder.append("(containerView))) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ Object _addShortcutAnnotation = this._common.addShortcutAnnotation(it, "target");
+ _builder.append(_addShortcutAnnotation, "\t\t\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ boolean _or = false;
+ boolean _or_1 = false;
+ EList<GenLink> _links_2 = it.getLinks();
+ final Function1<GenLink, EList<GenLinkLabel>> _function_6 = new Function1<GenLink, EList<GenLinkLabel>>() {
+ public EList<GenLinkLabel> apply(final GenLink l) {
+ return l.getLabels();
+ }
+ };
+ List<EList<GenLinkLabel>> _map_3 = ListExtensions.<GenLink, EList<GenLinkLabel>>map(_links_2, _function_6);
+ Iterable<GenLinkLabel> _flatten = Iterables.<GenLinkLabel>concat(_map_3);
+ boolean _notEmpty = this._common_qvto.<GenLinkLabel>notEmpty(_flatten);
+ if (_notEmpty) {
+ _or_1 = true;
+ } else {
+ EList<GenTopLevelNode> _topLevelNodes_1 = it.getTopLevelNodes();
+ final Function1<GenTopLevelNode, EList<GenNodeLabel>> _function_7 = new Function1<GenTopLevelNode, EList<GenNodeLabel>>() {
+ public EList<GenNodeLabel> apply(final GenTopLevelNode n) {
+ return n.getLabels();
+ }
+ };
+ List<EList<GenNodeLabel>> _map_4 = ListExtensions.<GenTopLevelNode, EList<GenNodeLabel>>map(_topLevelNodes_1, _function_7);
+ Iterable<GenNodeLabel> _flatten_1 = Iterables.<GenNodeLabel>concat(_map_4);
+ boolean _notEmpty_1 = this._common_qvto.<GenNodeLabel>notEmpty(_flatten_1);
+ _or_1 = _notEmpty_1;
+ }
+ if (_or_1) {
+ _or = true;
+ } else {
+ EList<GenChildNode> _childNodes = it.getChildNodes();
+ final Function1<GenChildNode, EList<GenNodeLabel>> _function_8 = new Function1<GenChildNode, EList<GenNodeLabel>>() {
+ public EList<GenNodeLabel> apply(final GenChildNode n) {
+ return n.getLabels();
+ }
+ };
+ List<EList<GenNodeLabel>> _map_5 = ListExtensions.<GenChildNode, EList<GenNodeLabel>>map(_childNodes, _function_8);
+ Iterable<GenNodeLabel> _flatten_2 = Iterables.<GenNodeLabel>concat(_map_5);
+ boolean _notEmpty_2 = this._common_qvto.<GenNodeLabel>notEmpty(_flatten_2);
+ _or = _notEmpty_2;
+ }
+ if (_or) {
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_10 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_10, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected org.eclipse.gmf.runtime.notation.Node createLabel(org.eclipse.gmf.runtime.notation.View owner, String hint) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.DecorationNode rv = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDecorationNode();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("rv.setType(hint);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.insertChildView(owner, rv, org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.APPEND, true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("return rv;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ {
+ EList<GenNode> _allNodes_7 = it.getAllNodes();
+ final Function1<GenNode, EList<GenCompartment>> _function_9 = new Function1<GenNode, EList<GenCompartment>>() {
+ public EList<GenCompartment> apply(final GenNode n) {
+ return n.getCompartments();
+ }
+ };
+ List<EList<GenCompartment>> _map_6 = ListExtensions.<GenNode, EList<GenCompartment>>map(_allNodes_7, _function_9);
+ Iterable<GenCompartment> _flatten_3 = Iterables.<GenCompartment>concat(_map_6);
+ boolean _notEmpty_3 = this._common_qvto.<GenCompartment>notEmpty(_flatten_3);
+ if (_notEmpty_3) {
+ _builder.append("\t\t");
+ CharSequence _generatedMemberComment_11 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_11, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ _builder.append("protected org.eclipse.gmf.runtime.notation.Node createCompartment(org.eclipse.gmf.runtime.notation.View owner, String hint, boolean canCollapse, boolean hasTitle, boolean canSort, boolean canFilter) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("//SemanticListCompartment rv = NotationFactory.eINSTANCE.createSemanticListCompartment();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("//rv.setShowTitle(showTitle);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("//rv.setCollapsed(isCollapsed);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Node rv;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("if (canCollapse) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("rv = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createBasicCompartment();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("} else {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("rv = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDecorationNode();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("rv.setLayoutConstraint(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createBounds());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("if (hasTitle) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.TitleStyle ts = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createTitleStyle();");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("rv.getStyles().add(ts);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("if (canSort) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("rv.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createSortingStyle());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("if (canFilter) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t\t");
+ _builder.append("rv.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createFilteringStyle());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("rv.setType(hint);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.insertChildView(owner, rv, org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.APPEND, true);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("\t");
+ _builder.append("return rv;");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ CharSequence _semanticElementMethod = this.getSemanticElementMethod(it);
+ _builder.append(_semanticElementMethod, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ CharSequence _semanticElementTypeMethod = this.getSemanticElementTypeMethod(it);
+ _builder.append(_semanticElementTypeMethod, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t\t");
+ CharSequence _additions = this.additions(it);
+ _builder.append(_additions, "\t\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _createNodeMethod(final GenNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.notation.Node create");
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("(org.eclipse.emf.ecore.EObject domainElement, org.eclipse.gmf.runtime.notation.View containerView, int index, boolean persisted, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Viewmap _viewmap = it.getViewmap();
+ boolean _canUseShapeStyle = this._viewmapAttributesUtils_qvto.canUseShapeStyle(_viewmap);
+ if (_canUseShapeStyle) {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Shape node = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createShape();");
+ _builder.newLine();
+ } else {
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Node node = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createNode();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("node.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createDescriptionStyle());");
+ _builder.newLine();
+ _builder.append("\t");
+ Viewmap _viewmap_1 = it.getViewmap();
+ CharSequence _addFontLineFillStylesConditionally = this.xptViewStyles.addFontLineFillStylesConditionally(_viewmap_1, "node.getStyles()");
+ _builder.append(_addFontLineFillStylesConditionally, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ CharSequence _addLinkedDiagramStyle = this.xptViewStyles.addLinkedDiagramStyle(it, "node.getStyles()");
+ _builder.append(_addLinkedDiagramStyle, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _addCustomStyles = this.xptViewStyles.addCustomStyles(it, "node.getStyles()");
+ _builder.append(_addCustomStyles, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("node.setLayoutConstraint(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createBounds());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("node.setType(");
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(it);
+ _builder.append(_typeMethodCall, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.insertChildView(containerView, node, index, persisted);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("node.setElement(domainElement);");
+ _builder.newLine();
+ {
+ if ((it instanceof GenTopLevelNode)) {
+ _builder.append("\t");
+ _builder.append("stampShortcut(containerView, node);");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ _builder.append("// initializeFromPreferences ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.jface.preference.IPreferenceStore prefStore = (org.eclipse.jface.preference.IPreferenceStore) preferencesHint.getPreferenceStore();");
+ _builder.newLine();
+ _builder.append("\t");
+ Viewmap _viewmap_2 = it.getViewmap();
+ boolean _isFixedForeground = this._viewmapAttributesUtils_qvto.isFixedForeground(_viewmap_2);
+ boolean _not = (!_isFixedForeground);
+ Viewmap _viewmap_3 = it.getViewmap();
+ boolean _isFixedBackground = this._viewmapAttributesUtils_qvto.isFixedBackground(_viewmap_3);
+ boolean _not_1 = (!_isFixedBackground);
+ Viewmap _viewmap_4 = it.getViewmap();
+ boolean _isFixedFont = this._viewmapAttributesUtils_qvto.isFixedFont(_viewmap_4);
+ boolean _not_2 = (!_isFixedFont);
+ CharSequence _initializeStyles = this.initializeStyles(it, "node", "prefStore", _not, _not_1, _not_2);
+ _builder.append(_initializeStyles, "\t");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ for(final GenNodeLabel label : _labels) {
+ _builder.append("\t");
+ CharSequence _initLabel = this.initLabel(label, "node", "prefStore");
+ _builder.append(_initLabel, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenCompartment> _compartments = it.getCompartments();
+ for(final GenCompartment comp : _compartments) {
+ _builder.append("\t");
+ CharSequence _initCompartment = this.initCompartment(comp, "node", "prefStore");
+ _builder.append(_initCompartment, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ EList<GenCompartment> _compartments_1 = it.getCompartments();
+ int _size = _compartments_1.size();
+ boolean _notEquals = (_size != 0);
+ if (_notEquals) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initCompartmentsStatusFromPrefs(");
+ _builder.append("node", "");
+ _builder.append(", ");
+ _builder.append("prefStore", "");
+ _builder.append(", \"");
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ _builder.append(_displayName, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t\t\t\t");
+ _builder.append("return node;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ protected CharSequence _createNodeMethod(final GenChildLabelNode it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.notation.Node create");
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("(org.eclipse.emf.ecore.EObject domainElement, org.eclipse.gmf.runtime.notation.View containerView, int index, boolean persisted, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.Node node = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createShape();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("node.setLayoutConstraint(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createLocation());");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _addLinkedDiagramStyle = this.xptViewStyles.addLinkedDiagramStyle(it, "node.getStyles()");
+ _builder.append(_addLinkedDiagramStyle, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _addCustomStyles = this.xptViewStyles.addCustomStyles(it, "node.getStyles()");
+ _builder.append(_addCustomStyles, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("node.setType(");
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(it);
+ _builder.append(_typeMethodCall, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.insertChildView(containerView, node, index, persisted);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("node.setElement(domainElement);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.jface.preference.IPreferenceStore prefStore = (org.eclipse.jface.preference.IPreferenceStore) preferencesHint.getPreferenceStore();");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _initFontFromPrefs = this.initFontFromPrefs(it, "node", "prefStore");
+ _builder.append(_initFontFromPrefs, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ CharSequence _initForegroundFromPrefs = this.initForegroundFromPrefs(it, "node", "prefStore");
+ _builder.append(_initForegroundFromPrefs, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return node;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence createEdgeMethod(final GenLink it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("public org.eclipse.gmf.runtime.notation.Edge create");
+ String _uniqueIdentifier = it.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("(");
+ {
+ boolean _isTypeLink = this._linkUtils_qvto.isTypeLink(it);
+ if (_isTypeLink) {
+ _builder.append("org.eclipse.emf.ecore.EObject domainElement, ");
+ }
+ }
+ _builder.append("org.eclipse.gmf.runtime.notation.View containerView, int index, boolean persisted, org.eclipse.gmf.runtime.diagram.core.preferences.PreferencesHint preferencesHint) {");
+ _builder.newLineIfNotEmpty();
+ {
+ Viewmap _viewmap = it.getViewmap();
+ boolean _isFixedForeground = this._viewmapAttributesUtils_qvto.isFixedForeground(_viewmap);
+ if (_isFixedForeground) {
+ _builder.append("org.eclipse.gmf.runtime.notation.Edge edge = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createEdge();");
+ _builder.newLine();
+ _builder.append("edge.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createRoutingStyle());");
+ _builder.newLine();
+ } else {
+ _builder.append("org.eclipse.gmf.runtime.notation.Connector edge = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createConnector();");
+ _builder.newLine();
+ }
+ }
+ {
+ Viewmap _viewmap_1 = it.getViewmap();
+ boolean _isFixedFont = this._viewmapAttributesUtils_qvto.isFixedFont(_viewmap_1);
+ boolean _not = (!_isFixedFont);
+ if (_not) {
+ _builder.append("edge.getStyles().add(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createFontStyle());");
+ _builder.newLine();
+ }
+ }
+ _builder.append("\t");
+ CharSequence _addCustomStyles = this.xptViewStyles.addCustomStyles(it, "edge.getStyles()");
+ _builder.append(_addCustomStyles, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.RelativeBendpoints bendpoints = org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createRelativeBendpoints();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("java.util.List<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint> points = new java.util.ArrayList<org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint>(2); ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("points.add(new org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("points.add(new org.eclipse.gmf.runtime.notation.datatype.RelativeBendpoint());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("bendpoints.setPoints(points);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("edge.setBendpoints(bendpoints);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.insertChildView(containerView, edge, index, persisted);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("edge.setType(");
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(it);
+ _builder.append(_typeMethodCall, "\t");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("edge.setElement(");
+ {
+ boolean _isTypeLink_1 = this._linkUtils_qvto.isTypeLink(it);
+ if (_isTypeLink_1) {
+ _builder.append("domainElement");
+ } else {
+ _builder.append("null");
+ }
+ }
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("// initializePreferences");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("final org.eclipse.jface.preference.IPreferenceStore prefStore = (org.eclipse.jface.preference.IPreferenceStore) preferencesHint.getPreferenceStore();");
+ _builder.newLine();
+ _builder.append("\t");
+ Viewmap _viewmap_2 = it.getViewmap();
+ boolean _isFixedForeground_1 = this._viewmapAttributesUtils_qvto.isFixedForeground(_viewmap_2);
+ boolean _not_1 = (!_isFixedForeground_1);
+ Viewmap _viewmap_3 = it.getViewmap();
+ boolean _isFixedFont_1 = this._viewmapAttributesUtils_qvto.isFixedFont(_viewmap_3);
+ boolean _not_2 = (!_isFixedFont_1);
+ CharSequence _initializeStyles = this.initializeStyles(it, "edge", "prefStore", _not_1, false, _not_2);
+ _builder.append(_initializeStyles, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("//org.eclipse.gmf.runtime.notation.Routing routing = org.eclipse.gmf.runtime.notation.Routing.get(prefStore.getInt(org.eclipse.gmf.runtime.diagram.ui.preferences.IPreferenceConstants.PREF_LINE_STYLE));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//if (routing != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//\torg.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(edge, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getRoutingStyle_Routing(), routing);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("//}");
+ _builder.newLine();
+ _builder.append("\t");
+ CharSequence _initRountingFromPrefs = this.initRountingFromPrefs(it, "edge", "prefStore");
+ _builder.append(_initRountingFromPrefs, "\t");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ for(final GenLinkLabel label : _labels) {
+ _builder.append("\t");
+ CharSequence _initLabel = this.initLabel(label, "edge", "prefStore");
+ _builder.append(_initLabel, "\t");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.append("\t");
+ CharSequence _initLabelVisibility = this.initLabelVisibility(it, "edge", "prefStore");
+ _builder.append(_initLabelVisibility, "\t");
+ _builder.newLineIfNotEmpty();
+ _builder.append("\t");
+ _builder.append("return edge;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getSemanticElementMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.emf.ecore.EObject getSemanticElement(org.eclipse.core.runtime.IAdaptable semanticAdapter) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (semanticAdapter == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject eObject = (org.eclipse.emf.ecore.EObject) semanticAdapter.getAdapter(org.eclipse.emf.ecore.EObject.class);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (eObject != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil.resolve(org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(eObject), eObject);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getSemanticElementTypeMethod(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("protected org.eclipse.gmf.runtime.emf.type.core.IElementType getSemanticElementType(org.eclipse.core.runtime.IAdaptable semanticAdapter) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (semanticAdapter == null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("return null;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return (org.eclipse.gmf.runtime.emf.type.core.IElementType) semanticAdapter.getAdapter(org.eclipse.gmf.runtime.emf.type.core.IElementType.class);");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initLabel(final GenLabel it, final String nodeVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ int _visualID = it.getVisualID();
+ String labelVar = ("label" + Integer.valueOf(_visualID));
+ _builder.newLineIfNotEmpty();
+ _builder.append("org.eclipse.gmf.runtime.notation.Node ");
+ _builder.append(labelVar, "");
+ _builder.append(" = createLabel(");
+ _builder.append(nodeVar, "");
+ _builder.append(", ");
+ CharSequence _typeMethodCall = this.xptVisualIDRegistry.typeMethodCall(it);
+ _builder.append(_typeMethodCall, "");
+ _builder.append(");");
+ _builder.newLineIfNotEmpty();
+ {
+ LabelModelFacet _modelFacet = it.getModelFacet();
+ boolean _notEquals = (!Objects.equal(_modelFacet, null));
+ if (_notEquals) {
+ LabelModelFacet _modelFacet_1 = it.getModelFacet();
+ CharSequence _addTextStyle = this.xptViewStyles.addTextStyle(_modelFacet_1, (labelVar + ".getStyles()"));
+ _builder.append(_addTextStyle, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ CharSequence _addCustomStyles = this.xptViewStyles.addCustomStyles(it, (labelVar + ".getStyles()"));
+ _builder.append(_addCustomStyles, "");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _or = false;
+ boolean _oclIsKindOf = this._common_qvto.oclIsKindOf(it, GenExternalNodeLabel.class);
+ if (_oclIsKindOf) {
+ _or = true;
+ } else {
+ boolean _oclIsKindOf_1 = this._common_qvto.oclIsKindOf(it, GenLinkLabel.class);
+ _or = _oclIsKindOf_1;
+ }
+ if (_or) {
+ _builder.append(labelVar, "");
+ _builder.append(".setLayoutConstraint(org.eclipse.gmf.runtime.notation.NotationFactory.eINSTANCE.createLocation());");
+ _builder.newLineIfNotEmpty();
+ CharSequence _offset = this.xptViewStyles.offset(it, labelVar);
+ _builder.append(_offset, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ CharSequence _initializeStyles = this.initializeStyles(it, labelVar, prefStoreVar, false, false, false);
+ _builder.append(_initializeStyles, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence additions(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ CharSequence _generatedMemberComment = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private void initFontStyleFromPrefs(org.eclipse.gmf.runtime.notation.View view, final org.eclipse.jface.preference.IPreferenceStore store, String elementName)");
+ _builder.newLine();
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String fontConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName, org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.FONT);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String fontColorConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName, org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.COLOR_FONT);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.FontStyle viewFontStyle = (org.eclipse.gmf.runtime.notation.FontStyle) view.getStyle(org.eclipse.gmf.runtime.notation.NotationPackage.Literals.FONT_STYLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (viewFontStyle != null) ");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.swt.graphics.FontData fontData = org.eclipse.jface.preference.PreferenceConverter.getFontData(store, fontConstant);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewFontStyle.setFontName(fontData.getName());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewFontStyle.setFontHeight(fontData.getHeight());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewFontStyle.setBold((fontData.getStyle() & org.eclipse.swt.SWT.BOLD) != 0);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("viewFontStyle.setItalic((fontData.getStyle() & org.eclipse.swt.SWT.ITALIC) != 0);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.swt.graphics.RGB fontRGB = org.eclipse.jface.preference.PreferenceConverter.getColor(store, fontColorConstant);");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append("viewFontStyle.setFontColor(org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities.RGBToInteger(fontRGB).intValue());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_1 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_1, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private void initForegroundFromPrefs(org.eclipse.gmf.runtime.notation.View view, final org.eclipse.jface.preference.IPreferenceStore store, String elementName)");
+ _builder.newLine();
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String lineColorConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName, org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.COLOR_LINE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.graphics.RGB lineRGB = org.eclipse.jface.preference.PreferenceConverter.getColor(store, lineColorConstant);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(view, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getLineStyle_LineColor(), org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities.RGBToInteger(lineRGB));");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ CharSequence _generatedMemberComment_2 = this._common.generatedMemberComment();
+ _builder.append(_generatedMemberComment_2, "");
+ _builder.newLineIfNotEmpty();
+ _builder.append("private void initBackgroundFromPrefs(org.eclipse.gmf.runtime.notation.View view, final org.eclipse.jface.preference.IPreferenceStore store, String elementName)");
+ _builder.newLine();
+ _builder.append("{");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String fillColorConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName, org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.COLOR_FILL);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String gradientColorConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName,org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.COLOR_GRADIENT);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("String gradientPolicyConstant = org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.getElementConstant(elementName,org.eclipse.papyrus.infra.gmfdiag.common.preferences.PreferencesConstantsHelper.GRADIENT_POLICY);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.swt.graphics.RGB fillRGB = org.eclipse.jface.preference.PreferenceConverter.getColor(store, fillColorConstant);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.diagram.core.util.ViewUtil.setStructuralFeatureValue(view, org.eclipse.gmf.runtime.notation.NotationPackage.eINSTANCE.getFillStyle_FillColor(), org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities.RGBToInteger(fillRGB));");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.gmf.runtime.notation.FillStyle fillStyle = (org.eclipse.gmf.runtime.notation.FillStyle) view");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append(".getStyle(org.eclipse.gmf.runtime.notation.NotationPackage.Literals.FILL_STYLE);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("fillStyle");
+ _builder.newLine();
+ _builder.append("\t\t\t");
+ _builder.append(".setFillColor(org.eclipse.gmf.runtime.draw2d.ui.figures.FigureUtilities.RGBToInteger(fillRGB).intValue());");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append(";");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if (store.getBoolean(gradientPolicyConstant)) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter gradientPreferenceConverter = new org.eclipse.papyrus.infra.gmfdiag.preferences.utils.GradientPreferenceConverter(");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append("store.getString(gradientColorConstant));");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("fillStyle.setGradient(gradientPreferenceConverter.getGradientData());");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("fillStyle");
+ _builder.newLine();
+ _builder.append("\t\t\t\t");
+ _builder.append(".setTransparency(gradientPreferenceConverter.getTransparency());");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("}");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence initFontFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _specificInitFontFromPrefs = this.specificInitFontFromPrefs(it, viewVar, prefStoreVar);
+ _builder.append(_specificInitFontFromPrefs, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence specificInitFontFromPrefs(final GenNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initFontStyleFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitFontFromPrefs(final GenChildNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initFontStyleFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitFontFromPrefs(final GenLink it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initFontStyleFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitFontFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initFontStyleFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence initForegroundFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _specificInitForegroundFromPrefs = this.specificInitForegroundFromPrefs(it, viewVar, prefStoreVar);
+ _builder.append(_specificInitForegroundFromPrefs, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence specificInitForegroundFromPrefs(final GenNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initForegroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitForegroundFromPrefs(final GenChildNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initForegroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitForegroundFromPrefs(final GenLink it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initForegroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitForegroundFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence initBackgroundFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _specificInitBackgroundFromPrefs = this.specificInitBackgroundFromPrefs(it, viewVar, prefStoreVar);
+ _builder.append(_specificInitBackgroundFromPrefs, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence specificInitBackgroundFromPrefs(final GenNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initBackgroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitBackgroundFromPrefs(final GenChildNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initBackgroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitBackgroundFromPrefs(final GenLink it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initBackgroundFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitBackgroundFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence initRountingFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _specificInitRountingFromPrefs = this.specificInitRountingFromPrefs(it, viewVar, prefStoreVar);
+ _builder.append(_specificInitRountingFromPrefs, "");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+
+ public CharSequence specificInitRountingFromPrefs(final GenNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initRountingFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitRountingFromPrefs(final GenChildNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initRountingFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitRountingFromPrefs(final GenLink it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ String _upperCase = _displayName.toUpperCase();
+ boolean _equals = "UNDEFINED".equals(_upperCase);
+ boolean _not = (!_equals);
+ if (_not) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initRountingFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType_1 = it.getElementType();
+ String _displayName_1 = _elementType_1.getDisplayName();
+ _builder.append(_displayName_1, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence specificInitRountingFromPrefs(final GenCommonBase it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ return _builder;
+ }
+
+ public CharSequence initLabelVisibility(final GenLink it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.newLine();
+ {
+ EList<GenLinkLabel> _labels = it.getLabels();
+ Iterable<GenLinkLabel> _filter = Iterables.<GenLinkLabel>filter(_labels, GenLinkLabel.class);
+ final Function1<GenLinkLabel, Boolean> _function = new Function1<GenLinkLabel, Boolean>() {
+ public Boolean apply(final GenLinkLabel lbl) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference label) {
+ EList<GenLinkLabel> _linkLabels = label.getLinkLabels();
+ return Boolean.valueOf(_linkLabels.contains(lbl));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ return Boolean.valueOf((_size != 0));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenLinkLabel>exists(_filter, _function);
+ if (_exists) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initLabelVisibilityFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ _builder.append(_displayName, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence initLabelVisibility(final GenNode it, final String viewVar, final String prefStoreVar) {
+ StringConcatenation _builder = new StringConcatenation();
+ {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ Iterable<GenExternalNodeLabel> _filter = Iterables.<GenExternalNodeLabel>filter(_labels, GenExternalNodeLabel.class);
+ final Function1<GenExternalNodeLabel, Boolean> _function = new Function1<GenExternalNodeLabel, Boolean>() {
+ public Boolean apply(final GenExternalNodeLabel lbl) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<LabelVisibilityPreference> _filter = Iterators.<LabelVisibilityPreference>filter(_allContents, LabelVisibilityPreference.class);
+ final Function1<LabelVisibilityPreference, Boolean> _function = new Function1<LabelVisibilityPreference, Boolean>() {
+ public Boolean apply(final LabelVisibilityPreference label) {
+ EList<GenExternalNodeLabel> _externalNodeLabels = label.getExternalNodeLabels();
+ return Boolean.valueOf(_externalNodeLabels.contains(lbl));
+ }
+ };
+ Iterator<LabelVisibilityPreference> _filter_1 = IteratorExtensions.<LabelVisibilityPreference>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ return Boolean.valueOf((_size != 0));
+ }
+ };
+ boolean _exists = IterableExtensions.<GenExternalNodeLabel>exists(_filter, _function);
+ if (_exists) {
+ _builder.append("org.eclipse.papyrus.uml.diagram.common.helper.PreferenceInitializerForElementHelper.initLabelVisibilityFromPrefs(");
+ _builder.append(viewVar, "");
+ _builder.append(", ");
+ _builder.append(prefStoreVar, "");
+ _builder.append(", \"");
+ ElementType _elementType = it.getElementType();
+ String _displayName = _elementType.getDisplayName();
+ _builder.append(_displayName, "");
+ _builder.append("\");");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ return _builder;
+ }
+
+ public CharSequence createNodeMethod(final GenNode it) {
+ if (it instanceof GenChildLabelNode) {
+ return _createNodeMethod((GenChildLabelNode)it);
+ } else if (it != null) {
+ return _createNodeMethod(it);
+ } else {
+ throw new IllegalArgumentException("Unhandled parameter types: " +
+ Arrays.<Object>asList(it).toString());
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/extensions.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/extensions.java
new file mode 100644
index 00000000000..f878eb75468
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/aspects/xpt/providers/extensions.java
@@ -0,0 +1,576 @@
+/**
+ * Copyright (c) 2007, 2010, 2013 Borland Software Corporation and others
+ *
+ * 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:
+ * Dmitry Stadnik (Borland) - initial API and implementation
+ * Michael Golubev (Montages) - #386838 - migrate to Xtend2
+ */
+package aspects.xpt.providers;
+
+import aspects.xpt.providers.ViewProvider;
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.ElementType;
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase;
+import org.eclipse.gmf.codegen.gmfgen.GenCompartment;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator;
+import org.eclipse.gmf.codegen.gmfgen.GenLink;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenParsers;
+import org.eclipse.gmf.codegen.gmfgen.GenPlugin;
+import org.eclipse.gmf.codegen.gmfgen.GenTopLevelNode;
+import org.eclipse.gmf.codegen.gmfgen.ProviderPriority;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenerateUsingElementTypeCreationCommand;
+import org.eclipse.xtend2.lib.StringConcatenation;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+import org.eclipse.xtext.xbase.lib.ListExtensions;
+import parsers.ParserProvider;
+import xpt.Common;
+import xpt.diagram.Utils_qvto;
+import xpt.providers.EditPartProvider;
+import xpt.providers.IconProvider;
+import xpt.providers.ShortcutsDecoratorProvider;
+
+@Singleton
+@SuppressWarnings("all")
+public class extensions extends xpt.providers.extensions {
+ @Inject
+ @Extension
+ private Common _common;
+
+ @Inject
+ @Extension
+ private Utils_qvto _utils_qvto;
+
+ @Inject
+ private ViewProvider viewProvider;
+
+ @Inject
+ private IconProvider iconProvider;
+
+ @Inject
+ private EditPartProvider editPartProvider;
+
+ @Inject
+ private ParserProvider labelParsers;
+
+ @Inject
+ private ShortcutsDecoratorProvider shorcutProvider;
+
+ public CharSequence extensions(final GenDiagram it) {
+ StringConcatenation _builder = new StringConcatenation();
+ CharSequence _extraLineBreak = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.diagram.core.viewProviders\" id=\"view-provider\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_1 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_1, "");
+ CharSequence _xmlGeneratedTag = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_2 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_2, "");
+ _builder.append("<viewProvider class=\"");
+ CharSequence _qualifiedClassName = this.viewProvider.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName, "");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_3 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_3, "");
+ _builder.append("<Priority name=\"");
+ ProviderPriority _notationViewProviderPriority = it.getNotationViewProviderPriority();
+ _builder.append(_notationViewProviderPriority, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<String> _shortcutsProvidedFor = it.getShortcutsProvidedFor();
+ boolean _isEmpty = _shortcutsProvidedFor.isEmpty();
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ String _tripleSpace_4 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_4, "");
+ _builder.append("<object id=\"referencing-diagrams\" class=\"org.eclipse.gmf.runtime.notation.Diagram\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_5 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_5, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ {
+ EList<String> _shortcutsProvidedFor_1 = it.getShortcutsProvidedFor();
+ boolean _hasElements = false;
+ for(final String s : _shortcutsProvidedFor_1) {
+ if (!_hasElements) {
+ _hasElements = true;
+ } else {
+ _builder.appendImmediate(",", "");
+ }
+ _builder.append(s, "");
+ }
+ }
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_6 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_6, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_7 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_7, "");
+ _builder.append("<context viewClass=\"org.eclipse.gmf.runtime.notation.Node\" containerViews=\"referencing-diagrams\"/>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ String _tripleSpace_8 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_8, "");
+ _builder.append("<context viewClass=\"org.eclipse.gmf.runtime.notation.Diagram\" semanticHints=\"");
+ GenEditorGenerator _editorGen = it.getEditorGen();
+ String _modelID = _editorGen.getModelID();
+ _builder.append(_modelID, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_9 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_9, "");
+ _builder.append("<context viewClass=\"org.eclipse.gmf.runtime.notation.Node\" semanticHints=\"");
+ EList<GenNode> _allNodes = it.getAllNodes();
+ CharSequence _commaSeparatedVisualIDs = this.commaSeparatedVisualIDs(_allNodes);
+ _builder.append(_commaSeparatedVisualIDs, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ {
+ EList<GenLink> _links = it.getLinks();
+ boolean _isEmpty_1 = _links.isEmpty();
+ boolean _not_1 = (!_isEmpty_1);
+ if (_not_1) {
+ String _tripleSpace_10 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_10, "");
+ _builder.append("<context viewClass=\"org.eclipse.gmf.runtime.notation.Edge\" semanticHints=\"");
+ EList<GenLink> _links_1 = it.getLinks();
+ CharSequence _commaSeparatedVisualIDs_1 = this.commaSeparatedVisualIDs(_links_1);
+ _builder.append(_commaSeparatedVisualIDs_1, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ String _tripleSpace_11 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_11, "");
+ _builder.append("</viewProvider>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_12 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_12, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ String _tripleSpace_13 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_13, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.diagram.ui.editpartProviders\" id=\"ep-provider\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_14 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_14, "");
+ CharSequence _xmlGeneratedTag_1 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_1, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_15 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_15, "");
+ _builder.append("<editpartProvider class=\"");
+ CharSequence _qualifiedClassName_1 = this.editPartProvider.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_1, "");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_16 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_16, "");
+ _builder.append("<Priority name=\"");
+ ProviderPriority _editPartProviderPriority = it.getEditPartProviderPriority();
+ _builder.append(_editPartProviderPriority, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_17 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_17, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Diagram\" id=\"generated-diagram\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_18 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_18, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ GenEditorGenerator _editorGen_1 = it.getEditorGen();
+ String _modelID_1 = _editorGen_1.getModelID();
+ _builder.append(_modelID_1, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_19 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_19, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_20 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_20, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Node\" id=\"generated-nodes\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_21 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_21, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ EList<GenNode> _allNodes_1 = it.getAllNodes();
+ CharSequence _commaSeparatedVisualIDs_2 = this.commaSeparatedVisualIDs(_allNodes_1);
+ _builder.append(_commaSeparatedVisualIDs_2, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_22 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_22, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_23 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_23, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Edge\" id=\"generated-links\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_24 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_24, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ EList<GenLink> _links_2 = it.getLinks();
+ CharSequence _commaSeparatedVisualIDs_3 = this.commaSeparatedVisualIDs(_links_2);
+ _builder.append(_commaSeparatedVisualIDs_3, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_25 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_25, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_26 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_26, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Node\" id=\"generated-labels\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_27 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_27, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ EList<GenNode> _allNodes_2 = it.getAllNodes();
+ final Function1<GenNode, EList<GenNodeLabel>> _function = new Function1<GenNode, EList<GenNodeLabel>>() {
+ public EList<GenNodeLabel> apply(final GenNode n) {
+ return n.getLabels();
+ }
+ };
+ List<EList<GenNodeLabel>> _map = ListExtensions.<GenNode, EList<GenNodeLabel>>map(_allNodes_2, _function);
+ Iterable<GenNodeLabel> _flatten = Iterables.<GenNodeLabel>concat(_map);
+ CharSequence _commaSeparatedVisualIDs_4 = this.commaSeparatedVisualIDs(_flatten);
+ _builder.append(_commaSeparatedVisualIDs_4, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_28 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_28, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_29 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_29, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Node\" id=\"generated-compartments\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_30 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_30, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ EList<GenCompartment> _compartments = it.getCompartments();
+ CharSequence _commaSeparatedVisualIDs_5 = this.commaSeparatedVisualIDs(_compartments);
+ _builder.append(_commaSeparatedVisualIDs_5, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_31 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_31, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_32 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_32, "");
+ _builder.append("<context views=\"generated-diagram,generated-nodes,generated-links,generated-labels,generated-compartments\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_33 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_33, "");
+ _builder.append("</editpartProvider>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_34 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_34, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ _builder.newLine();
+ String _tripleSpace_35 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_35, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.common.ui.services.iconProviders\" id=\"icon-provider\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_36 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_36, "");
+ CharSequence _xmlGeneratedTag_2 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_2, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_37 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_37, "");
+ _builder.append("<IconProvider class=\"");
+ CharSequence _qualifiedClassName_2 = this.iconProvider.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_2, "");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_38 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_38, "");
+ _builder.append("<Priority name=\"");
+ ProviderPriority _iconProviderPriority = it.getIconProviderPriority();
+ _builder.append(_iconProviderPriority, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_39 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_39, "");
+ _builder.append("</IconProvider>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_40 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_40, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ {
+ boolean _and = false;
+ GenEditorGenerator _editorGen_2 = it.getEditorGen();
+ GenParsers _labelParsers = _editorGen_2.getLabelParsers();
+ boolean _notEquals = (!Objects.equal(_labelParsers, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ GenEditorGenerator _editorGen_3 = it.getEditorGen();
+ GenParsers _labelParsers_1 = _editorGen_3.getLabelParsers();
+ boolean _isExtensibleViaService = _labelParsers_1.isExtensibleViaService();
+ _and = _isExtensibleViaService;
+ }
+ if (_and) {
+ CharSequence _extraLineBreak_1 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_1, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_41 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_41, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.common.ui.services.parserProviders\" id=\"parser-provider\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_42 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_42, "");
+ CharSequence _xmlGeneratedTag_3 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_3, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_43 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_43, "");
+ _builder.append("<ParserProvider class=\"");
+ GenEditorGenerator _editorGen_4 = it.getEditorGen();
+ GenParsers _labelParsers_2 = _editorGen_4.getLabelParsers();
+ CharSequence _qualifiedClassName_3 = this.labelParsers.qualifiedClassName(_labelParsers_2);
+ _builder.append(_qualifiedClassName_3, "");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_44 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_44, "");
+ _builder.append("<Priority name=\"");
+ GenEditorGenerator _editorGen_5 = it.getEditorGen();
+ GenParsers _labelParsers_3 = _editorGen_5.getLabelParsers();
+ ProviderPriority _providerPriority = _labelParsers_3.getProviderPriority();
+ _builder.append(_providerPriority, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_45 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_45, "");
+ _builder.append("</ParserProvider>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_46 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_46, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ boolean _generateShortcutIcon = it.generateShortcutIcon();
+ if (_generateShortcutIcon) {
+ CharSequence _extraLineBreak_2 = this._common.extraLineBreak();
+ _builder.append(_extraLineBreak_2, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_47 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_47, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.diagram.ui.decoratorProviders\" id=\"decorator-provider\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_48 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_48, "");
+ CharSequence _xmlGeneratedTag_4 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_4, "");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_49 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_49, "");
+ _builder.append("<decoratorProvider class=\"");
+ CharSequence _qualifiedClassName_4 = this.shorcutProvider.qualifiedClassName(it);
+ _builder.append(_qualifiedClassName_4, "");
+ _builder.append("\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_50 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_50, "");
+ _builder.append("<Priority name=\"");
+ ProviderPriority _shortcutsDecoratorProviderPriority = it.getShortcutsDecoratorProviderPriority();
+ _builder.append(_shortcutsDecoratorProviderPriority, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_51 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_51, "");
+ _builder.append("<object class=\"org.eclipse.gmf.runtime.notation.Node(org.eclipse.gmf.runtime.notation)\" id=\"generated-top-nodes\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_52 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_52, "");
+ _builder.append("<method name=\"getType()\" value=\"");
+ EList<GenTopLevelNode> _topLevelNodes = it.getTopLevelNodes();
+ CharSequence _commaSeparatedVisualIDs_6 = this.commaSeparatedVisualIDs(_topLevelNodes);
+ _builder.append(_commaSeparatedVisualIDs_6, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_53 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_53, "");
+ _builder.append("</object>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_54 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_54, "");
+ _builder.append("<context decoratorTargets=\"generated-top-nodes\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_55 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_55, "");
+ _builder.append("</decoratorProvider>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_56 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_56, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ _builder.newLine();
+ String _tripleSpace_57 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_57, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.emf.type.core.elementTypes\" id=\"element-types\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_58 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_58, "");
+ CharSequence _xmlGeneratedTag_5 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_5, "");
+ _builder.newLineIfNotEmpty();
+ {
+ List<GenCommonBase> _allTypedElements = this._utils_qvto.getAllTypedElements(it);
+ for(final GenCommonBase e : _allTypedElements) {
+ ElementType _elementType = e.getElementType();
+ CharSequence _elementTypeSafe = this.elementTypeSafe(_elementType);
+ _builder.append(_elementTypeSafe, "");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ String _tripleSpace_59 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_59, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ _builder.newLine();
+ String _tripleSpace_60 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_60, "");
+ _builder.append("<extension point=\"org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings\" id=\"element-types-bindings\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_61 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_61, "");
+ CharSequence _xmlGeneratedTag_6 = this._common.xmlGeneratedTag();
+ _builder.append(_xmlGeneratedTag_6, "");
+ _builder.newLineIfNotEmpty();
+ {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents, GenerateUsingElementTypeCreationCommand.class);
+ int _size = IteratorExtensions.size(_filter);
+ boolean _lessThan = (_size < 1);
+ if (_lessThan) {
+ String _tripleSpace_62 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_62, "");
+ _builder.append("<clientContext id=\"");
+ GenEditorGenerator _editorGen_6 = it.getEditorGen();
+ GenPlugin _plugin = _editorGen_6.getPlugin();
+ String _iD = _plugin.getID();
+ _builder.append(_iD, "");
+ _builder.append(".TypeContext\">");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_63 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_63, "");
+ _builder.append("<enablement>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_64 = this._common.tripleSpace(4);
+ _builder.append(_tripleSpace_64, "");
+ _builder.append("<test");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_65 = this._common.tripleSpace(5);
+ _builder.append(_tripleSpace_65, "");
+ _builder.append("property=\"org.eclipse.gmf.runtime.emf.core.editingDomain\"");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_66 = this._common.tripleSpace(5);
+ _builder.append(_tripleSpace_66, "");
+ _builder.append("value=\"");
+ String _editingDomainID = it.getEditingDomainID();
+ _builder.append(_editingDomainID, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_67 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_67, "");
+ _builder.append("</enablement>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_68 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_68, "");
+ _builder.append("</clientContext> ");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_69 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_69, "");
+ _builder.append("<binding context=\"");
+ GenEditorGenerator _editorGen_7 = it.getEditorGen();
+ GenPlugin _plugin_1 = _editorGen_7.getPlugin();
+ String _iD_1 = _plugin_1.getID();
+ _builder.append(_iD_1, "");
+ _builder.append(".TypeContext\">");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ {
+ Resource _eResource_1 = it.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<GenerateUsingElementTypeCreationCommand> _filter_1 = Iterators.<GenerateUsingElementTypeCreationCommand>filter(_allContents_1, GenerateUsingElementTypeCreationCommand.class);
+ int _size_1 = IteratorExtensions.size(_filter_1);
+ boolean _greaterThan = (_size_1 > 0);
+ if (_greaterThan) {
+ _builder.newLine();
+ _builder.append("<binding context=\"org.eclipse.papyrus.infra.services.edit.TypeContext\">");
+ _builder.newLine();
+ }
+ }
+ {
+ List<GenCommonBase> _allTypedElements_1 = this._utils_qvto.getAllTypedElements(it);
+ for(final GenCommonBase e_1 : _allTypedElements_1) {
+ String _tripleSpace_70 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_70, "");
+ _builder.append("<elementType ref=\"");
+ ElementType _elementType_1 = e_1.getElementType();
+ String _uniqueIdentifier = _elementType_1.getUniqueIdentifier();
+ _builder.append(_uniqueIdentifier, "");
+ _builder.append("\"/>");
+ _builder.newLineIfNotEmpty();
+ }
+ }
+ String _tripleSpace_71 = this._common.tripleSpace(3);
+ _builder.append(_tripleSpace_71, "");
+ _builder.append("<advice ref=\"org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents\"/>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_72 = this._common.tripleSpace(2);
+ _builder.append(_tripleSpace_72, "");
+ _builder.append("</binding>");
+ _builder.newLineIfNotEmpty();
+ String _tripleSpace_73 = this._common.tripleSpace(1);
+ _builder.append(_tripleSpace_73, "");
+ _builder.append("</extension>");
+ _builder.newLineIfNotEmpty();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/.gitignore b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/.gitignore
deleted file mode 100644
index 29475c37723..00000000000
--- a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-/EditHelperUtils_qvto.java
-/EditPartsUtils_qvto.java
-/NodeConstraintUtils_qvto.java
-/PrefsConstant_qvto.java
-/UtilsItemSemanticEditPolicy.java
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditHelperUtils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditHelperUtils_qvto.java
new file mode 100644
index 00000000000..93e3fabbb62
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditHelperUtils_qvto.java
@@ -0,0 +1,35 @@
+package utils;
+
+import com.google.common.collect.Iterators;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram;
+import org.eclipse.papyrus.papyrusgmfgenextension.AdditionalEditPartCandies;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class EditHelperUtils_qvto {
+ public String getBaseEditHelperFullName(final GenDiagram diagram) {
+ Resource _eResource = diagram.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<AdditionalEditPartCandies> _filter = Iterators.<AdditionalEditPartCandies>filter(_allContents, AdditionalEditPartCandies.class);
+ boolean _isEmpty = IteratorExtensions.isEmpty(_filter);
+ boolean _not = (!_isEmpty);
+ if (_not) {
+ Resource _eResource_1 = diagram.eResource();
+ TreeIterator<EObject> _allContents_1 = _eResource_1.getAllContents();
+ Iterator<AdditionalEditPartCandies> _filter_1 = Iterators.<AdditionalEditPartCandies>filter(_allContents_1, AdditionalEditPartCandies.class);
+ AdditionalEditPartCandies _head = IteratorExtensions.<AdditionalEditPartCandies>head(_filter_1);
+ String _baseEditHelperPackage = _head.getBaseEditHelperPackage();
+ String _plus = (_baseEditHelperPackage + ".");
+ String _baseEditHelperClassName = diagram.getBaseEditHelperClassName();
+ return (_plus + _baseEditHelperClassName);
+ } else {
+ return diagram.getBaseEditHelperQualifiedClassName();
+ }
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditPartsUtils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditPartsUtils_qvto.java
new file mode 100644
index 00000000000..36a41aa2bd2
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/EditPartsUtils_qvto.java
@@ -0,0 +1,92 @@
+/**
+ * Copyright (c) 2010 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Yann Tanguy (CEA LIST) - initial API and implementation
+ */
+package utils;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Iterators;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import java.util.List;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.GenNodeLabel;
+import org.eclipse.papyrus.papyrusgmfgenextension.SpecificLocatorExternalLabel;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IterableExtensions;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class EditPartsUtils_qvto {
+ public boolean hasSpecificLocator(final GenExternalNodeLabel it) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<SpecificLocatorExternalLabel> _filter = Iterators.<SpecificLocatorExternalLabel>filter(_allContents, SpecificLocatorExternalLabel.class);
+ final Function1<SpecificLocatorExternalLabel, Boolean> _function = new Function1<SpecificLocatorExternalLabel, Boolean>() {
+ public Boolean apply(final SpecificLocatorExternalLabel v) {
+ EList<GenExternalNodeLabel> _genExternalNodeLabel = v.getGenExternalNodeLabel();
+ return Boolean.valueOf(_genExternalNodeLabel.contains(it));
+ }
+ };
+ Iterator<SpecificLocatorExternalLabel> _filter_1 = IteratorExtensions.<SpecificLocatorExternalLabel>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ return (_size != 0);
+ }
+
+ public String getSpecificLocator(final GenExternalNodeLabel it) {
+ boolean _hasSpecificLocator = this.hasSpecificLocator(it);
+ if (_hasSpecificLocator) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<SpecificLocatorExternalLabel> _filter = Iterators.<SpecificLocatorExternalLabel>filter(_allContents, SpecificLocatorExternalLabel.class);
+ final Function1<SpecificLocatorExternalLabel, Boolean> _function = new Function1<SpecificLocatorExternalLabel, Boolean>() {
+ public Boolean apply(final SpecificLocatorExternalLabel v) {
+ EList<GenExternalNodeLabel> _genExternalNodeLabel = v.getGenExternalNodeLabel();
+ return Boolean.valueOf(_genExternalNodeLabel.contains(it));
+ }
+ };
+ Iterator<SpecificLocatorExternalLabel> _filter_1 = IteratorExtensions.<SpecificLocatorExternalLabel>filter(_filter, _function);
+ SpecificLocatorExternalLabel _head = IteratorExtensions.<SpecificLocatorExternalLabel>head(_filter_1);
+ return _head.getClasspath();
+ }
+ return null;
+ }
+
+ public List<GenExternalNodeLabel> getExternalLabelsWithoutSpecificLocator(final GenNode it) {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ Iterable<GenExternalNodeLabel> _filter = Iterables.<GenExternalNodeLabel>filter(_labels, GenExternalNodeLabel.class);
+ final Function1<GenExternalNodeLabel, Boolean> _function = new Function1<GenExternalNodeLabel, Boolean>() {
+ public Boolean apply(final GenExternalNodeLabel l) {
+ boolean _hasSpecificLocator = EditPartsUtils_qvto.this.hasSpecificLocator(l);
+ return Boolean.valueOf((!_hasSpecificLocator));
+ }
+ };
+ Iterable<GenExternalNodeLabel> _filter_1 = IterableExtensions.<GenExternalNodeLabel>filter(_filter, _function);
+ return IterableExtensions.<GenExternalNodeLabel>toList(_filter_1);
+ }
+
+ public List<GenExternalNodeLabel> getExternalLabelsWithSpecificLocator(final GenNode it) {
+ EList<GenNodeLabel> _labels = it.getLabels();
+ Iterable<GenExternalNodeLabel> _filter = Iterables.<GenExternalNodeLabel>filter(_labels, GenExternalNodeLabel.class);
+ final Function1<GenExternalNodeLabel, Boolean> _function = new Function1<GenExternalNodeLabel, Boolean>() {
+ public Boolean apply(final GenExternalNodeLabel l) {
+ return Boolean.valueOf(EditPartsUtils_qvto.this.hasSpecificLocator(l));
+ }
+ };
+ Iterable<GenExternalNodeLabel> _filter_1 = IterableExtensions.<GenExternalNodeLabel>filter(_filter, _function);
+ return IterableExtensions.<GenExternalNodeLabel>toList(_filter_1);
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/NodeConstraintUtils_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/NodeConstraintUtils_qvto.java
new file mode 100644
index 00000000000..c160dba9ec4
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/NodeConstraintUtils_qvto.java
@@ -0,0 +1,120 @@
+/**
+ * Copyright (c) 2010 CEA LIST
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Yann Tanguy (CEA LIST) - initial API and implementation
+ */
+package utils;
+
+import com.google.common.base.Objects;
+import com.google.common.collect.Iterators;
+import com.google.inject.Singleton;
+import java.util.Iterator;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.codegen.gmfgen.GenConstraint;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeModelFacet;
+import org.eclipse.papyrus.papyrusgmfgenextension.GenNodeConstraint;
+import org.eclipse.xtext.xbase.lib.Functions.Function1;
+import org.eclipse.xtext.xbase.lib.IteratorExtensions;
+
+@Singleton
+@SuppressWarnings("all")
+public class NodeConstraintUtils_qvto {
+ public boolean hasNodeCreationConstraint(final GenNode it) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenNodeConstraint> _filter = Iterators.<GenNodeConstraint>filter(_allContents, GenNodeConstraint.class);
+ final Function1<GenNodeConstraint, Boolean> _function = new Function1<GenNodeConstraint, Boolean>() {
+ public Boolean apply(final GenNodeConstraint v) {
+ boolean _and = false;
+ EList<GenNode> _genNode = v.getGenNode();
+ boolean _contains = _genNode.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ GenConstraint _genConstraint = v.getGenConstraint();
+ boolean _notEquals = (!Objects.equal(_genConstraint, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<GenNodeConstraint> _filter_1 = IteratorExtensions.<GenNodeConstraint>filter(_filter, _function);
+ int _size = IteratorExtensions.size(_filter_1);
+ return (_size != 0);
+ }
+
+ public GenNodeConstraint getNodeCreationConstraint(final GenNode it) {
+ boolean _hasNodeCreationConstraint = this.hasNodeCreationConstraint(it);
+ if (_hasNodeCreationConstraint) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenNodeConstraint> _filter = Iterators.<GenNodeConstraint>filter(_allContents, GenNodeConstraint.class);
+ final Function1<GenNodeConstraint, Boolean> _function = new Function1<GenNodeConstraint, Boolean>() {
+ public Boolean apply(final GenNodeConstraint v) {
+ boolean _and = false;
+ EList<GenNode> _genNode = v.getGenNode();
+ boolean _contains = _genNode.contains(it);
+ if (!_contains) {
+ _and = false;
+ } else {
+ GenConstraint _genConstraint = v.getGenConstraint();
+ boolean _notEquals = (!Objects.equal(_genConstraint, null));
+ _and = _notEquals;
+ }
+ return Boolean.valueOf(_and);
+ }
+ };
+ Iterator<GenNodeConstraint> _filter_1 = IteratorExtensions.<GenNodeConstraint>filter(_filter, _function);
+ return IteratorExtensions.<GenNodeConstraint>head(_filter_1);
+ } else {
+ return null;
+ }
+ }
+
+ public GenNode getOwningGenNode(final TypeModelFacet it) {
+ Resource _eResource = it.eResource();
+ TreeIterator<EObject> _allContents = _eResource.getAllContents();
+ Iterator<GenNode> _filter = Iterators.<GenNode>filter(_allContents, GenNode.class);
+ final Function1<GenNode, Boolean> _function = new Function1<GenNode, Boolean>() {
+ public Boolean apply(final GenNode v) {
+ TypeModelFacet _modelFacet = v.getModelFacet();
+ return Boolean.valueOf(Objects.equal(_modelFacet, it));
+ }
+ };
+ Iterator<GenNode> _filter_1 = IteratorExtensions.<GenNode>filter(_filter, _function);
+ return IteratorExtensions.<GenNode>head(_filter_1);
+ }
+
+ public String getNodeCreationConstraintBody(final GenNode it) {
+ GenNodeConstraint nodeConstraint = this.getNodeCreationConstraint(it);
+ boolean _hasNodeCreationConstraint = this.hasNodeCreationConstraint(it);
+ if (_hasNodeCreationConstraint) {
+ boolean _and = false;
+ GenConstraint _genConstraint = nodeConstraint.getGenConstraint();
+ boolean _notEquals = (!Objects.equal(_genConstraint, null));
+ if (!_notEquals) {
+ _and = false;
+ } else {
+ GenConstraint _genConstraint_1 = nodeConstraint.getGenConstraint();
+ String _body = _genConstraint_1.getBody();
+ boolean _notEquals_1 = (!Objects.equal(_body, null));
+ _and = _notEquals_1;
+ }
+ if (_and) {
+ GenConstraint _genConstraint_2 = nodeConstraint.getGenConstraint();
+ return _genConstraint_2.getBody();
+ }
+ }
+ return "No GenNodeConstraint found.";
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/PrefsConstant_qvto.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/PrefsConstant_qvto.java
new file mode 100644
index 00000000000..b076cba9beb
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/PrefsConstant_qvto.java
@@ -0,0 +1,119 @@
+/**
+ * Copyright (c) 2008 Atos Origin
+ *
+ * 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:
+ * Thibault Landre (Atos Origin) - initial API and implementation
+ * modified by Patrick Tessier(CEA LIST)
+ */
+package utils;
+
+import com.google.inject.Singleton;
+
+@Singleton
+@SuppressWarnings("all")
+public class PrefsConstant_qvto {
+ public String getDiagramPreferencePageCategory() {
+ return "org.eclipse.papyrus.infra.gmfdiag.preferences.diagrams";
+ }
+
+ public String getPreferenceConstant() {
+ return "_PREF_";
+ }
+
+ public String getPreferenceGradientPolicyConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "GRADIENT_POLICY");
+ }
+
+ public String getPreferenceGradientColorConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "GRADIENT_COLOR");
+ }
+
+ public String getPreferenceFillColorConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "FILL_COLOR");
+ }
+
+ public String getPreferenceFontColorConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "FONT_COLOR");
+ }
+
+ public String getPreferenceFontConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "FONT");
+ }
+
+ public String getPreferenceLineColorConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "LINE_COLOR");
+ }
+
+ public String getPreferenceJumpLinkConstant() {
+ String _preferenceConstant = this.getPreferenceConstant();
+ return (_preferenceConstant + "JUMPLINK_");
+ }
+
+ public String getPreferenceJumpLinkReverseConstant(final String _element) {
+ String _preferenceJumpLinkConstant = this.getPreferenceJumpLinkConstant();
+ String _plus = (_element + _preferenceJumpLinkConstant);
+ return (_plus + "REVERSE");
+ }
+
+ public String getPreferenceJumpLinkStatusConstant(final String _element) {
+ String _preferenceJumpLinkConstant = this.getPreferenceJumpLinkConstant();
+ String _plus = (_element + _preferenceJumpLinkConstant);
+ return (_plus + "STATUS");
+ }
+
+ public String getPreferenceJumpLinkTypeConstant(final String _element) {
+ String _preferenceJumpLinkConstant = this.getPreferenceJumpLinkConstant();
+ String _plus = (_element + _preferenceJumpLinkConstant);
+ return (_plus + "TYPE");
+ }
+
+ public String getPreferenceRoutingConstant() {
+ String _preferenceConstant = this.getPreferenceConstant();
+ return (_preferenceConstant + "ROUTING_");
+ }
+
+ public String getPreferenceRoutingDistancePolicyConstant(final String _element) {
+ String _preferenceRoutingConstant = this.getPreferenceRoutingConstant();
+ String _plus = (_element + _preferenceRoutingConstant);
+ return (_plus + "DISTANCE_POLICY");
+ }
+
+ public String getPreferenceRoutingObstructionPolicyConstant(final String _element) {
+ String _preferenceRoutingConstant = this.getPreferenceRoutingConstant();
+ String _plus = (_element + _preferenceRoutingConstant);
+ return (_plus + "OBSTRUCTION_POLICY");
+ }
+
+ public String getPreferenceRoutingStyleConstant(final String _element) {
+ String _preferenceRoutingConstant = this.getPreferenceRoutingConstant();
+ String _plus = (_element + _preferenceRoutingConstant);
+ return (_plus + "STYLE");
+ }
+
+ public String getPreferenceSmoothnessConstant(final String _element) {
+ String _preferenceConstant = this.getPreferenceConstant();
+ String _plus = (_element + _preferenceConstant);
+ return (_plus + "SMOOTHNESS");
+ }
+
+ public String getPreferencePageSuffix() {
+ return "PreferencePage";
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/UtilsItemSemanticEditPolicy.java b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/UtilsItemSemanticEditPolicy.java
new file mode 100644
index 00000000000..5a9cc152562
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend-gen/utils/UtilsItemSemanticEditPolicy.java
@@ -0,0 +1,104 @@
+/**
+ * Copyright (c) 2010 CEA LIST.
+ *
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Vincent Lorenzo (CEA LIST) vincent.lorenzo@cea.fr - Initial API and implementation
+ */
+package utils;
+
+import com.google.inject.Singleton;
+import org.eclipse.gmf.codegen.gmfgen.GenNode;
+import org.eclipse.gmf.codegen.gmfgen.TypeLinkModelFacet;
+import org.eclipse.xtend2.lib.StringConcatenation;
+
+@Singleton
+@SuppressWarnings("all")
+public class UtilsItemSemanticEditPolicy {
+ public CharSequence getDestroyElementCommandByService(final GenNode i) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("protected org.eclipse.gef.commands.Command getDestroyElementCommand(org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject selectedEObject = req.getElementToDestroy();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider =org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(selectedEObject);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(provider != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Retrieve delete command from the Element Edit service");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand deleteCommand = provider.getEditCommand(req);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(deleteCommand != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy(deleteCommand);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+
+ public CharSequence getDestroyElementCommandByService(final TypeLinkModelFacet it) {
+ StringConcatenation _builder = new StringConcatenation();
+ _builder.append("protected org.eclipse.gef.commands.Command getDestroyElementCommand(org.eclipse.gmf.runtime.emf.type.core.requests.DestroyElementRequest req) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.emf.ecore.EObject selectedEObject = req.getElementToDestroy();");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("org.eclipse.papyrus.infra.services.edit.service.IElementEditService provider =org.eclipse.papyrus.infra.services.edit.service.ElementEditServiceUtils.getCommandProvider(selectedEObject);");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("if(provider != null) {");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("// Retrieve delete command from the Element Edit service");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("org.eclipse.gmf.runtime.common.core.command.ICommand deleteCommand = provider.getEditCommand(req);");
+ _builder.newLine();
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("if(deleteCommand != null) {");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return new org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy(deleteCommand);");
+ _builder.newLine();
+ _builder.append("\t\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("return org.eclipse.gef.commands.UnexecutableCommand.INSTANCE;");
+ _builder.newLine();
+ _builder.append("\t");
+ _builder.append("}");
+ _builder.newLine();
+ return _builder;
+ }
+}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/NodeLabelEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/NodeLabelEditPart.xtend
index 1baa2dab3d2..0c009a414db 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/NodeLabelEditPart.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/diagram/editparts/NodeLabelEditPart.xtend
@@ -55,7 +55,7 @@ override extendsList (GenNodeLabel it) '''extends org.eclipse.papyrus.infra.gmfd
«generatedMemberComment»
protected void addOwnerElementListeners() {
- addListenerFilter(ADD_PARENT_MODEL, this, ((org.eclipse.gmf.runtime.notation.View) getParent().getModel())); //$NON-NLS-1$
+ addListenerFilter(ADD_PARENT_MODEL, this, ((org.eclipse.gmf.runtime.notation.View) getParent().getModel()));
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend
new file mode 100644
index 00000000000..2a80b048294
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/ExternalNodeLabelEditPart.xtend
@@ -0,0 +1,32 @@
+/*****************************************************************************
+ * Copyright (c) 2014 CEA LIST and others.
+ *
+ * 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:
+ * CEA LIST - Initial API and implementation
+ *
+ *****************************************************************************/
+
+package aspects.impl.diagram.editparts
+
+import xpt.diagram.editparts.Common
+import org.eclipse.gmf.codegen.gmfgen.GenExternalNodeLabel
+import com.google.inject.Inject
+
+/**
+ * @author Mickael ADAM
+ *
+ */
+class ExternalNodeLabelEditPart extends impl.diagram.editparts.ExternalNodeLabelEditPart {
+
+ override additionalEditPolicies(GenExternalNodeLabel it){
+ '''
+ installEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE, new org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.ExternalLabelPrimaryDragRoleEditPolicy());
+ '''
+ }
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend
index a18e806950f..7911b17d906 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/NodeEditPart.xtend
@@ -16,6 +16,7 @@
*/
package aspects.impl.diagram.editparts
+import aspects.xpt.CodeStyle
import aspects.xpt.editor.VisualIDRegistry
import com.google.inject.Inject
import com.google.inject.Singleton
@@ -33,18 +34,17 @@ import utils.EditPartsUtils_qvto
import xpt.Common
import xpt.diagram.editparts.EditPartFactory
import xpt.diagram.editparts.Utils_qvto
-import xpt.diagram.editpolicies.GraphicalNodeEditPolicy
@Singleton class NodeEditPart extends impl.diagram.editparts.NodeEditPart {
@Inject extension Common;
+ @Inject extension CodeStyle;
@Inject extension EditPartsUtils_qvto;
@Inject extension VisualIDRegistry;
- @Inject GraphicalNodeEditPolicy graphicalEditPolicy;
@Inject extension Utils_qvto;
@Inject EditPartFactory xptEditPartFactory;
- @Inject impl.diagram.editparts.TextAware xptTextAware;
+ @Inject impl.diagram.editparts.TextAware xptTextAware;
//---------
// GMF
@@ -202,7 +202,62 @@ override borderItemSelectionEditPolicy(GenNode it)'''
}
«ENDIF»
'''
+
+ override createLayoutEditPolicyBody_FLOW_LAYOUT(GenNode it) '''
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.FlowLayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.FlowLayoutEditPolicy() {
+ «IF hasBorderItems(it)»
+ «extraLineBreak»
+ «overrideC»
+ protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) {
+ «borderItemSelectionEditPolicy()»
+ return super.createChildEditPolicy(child);
+ }
+ «ENDIF»
+
+ «overrideC»
+ protected org.eclipse.gef.commands.Command createAddCommand(org.eclipse.gef.EditPart child, org.eclipse.gef.EditPart after) {
+ return null;
+ }
+
+ «overrideC»
+ protected org.eclipse.gef.commands.Command createMoveChildCommand(org.eclipse.gef.EditPart child, org.eclipse.gef.EditPart after) {
+ return null;
+ }
+
+ «overrideC»
+ protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gef.requests.CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ '''
+ override createLayoutEditPolicyBody_DEFAULT(GenNode it) '''
+ org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy lep = new org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy() {
+
+ «overrideC»
+ protected org.eclipse.gef.EditPolicy createChildEditPolicy(org.eclipse.gef.EditPart child) {
+ «borderItemSelectionEditPolicy(it)»
+ org.eclipse.gef.EditPolicy result = child.getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE);
+ if (result == null) {
+ result = new org.eclipse.gef.editpolicies.NonResizableEditPolicy();
+ }
+ return result;
+ }
+
+ «overrideC»
+ protected org.eclipse.gef.commands.Command getMoveChildrenCommand(org.eclipse.gef.Request request) {
+ return null;
+ }
+
+ «overrideC»
+ protected org.eclipse.gef.commands.Command getCreateCommand(org.eclipse.gef.requests.CreateRequest request) {
+ return null;
+ }
+ };
+ return lep;
+ '''
+
//---------
// PAPYRUS
//---------
@@ -232,6 +287,7 @@ def genSpecificLocator(SpecificLocator it, GenChildSideAffixedNode child)'''
override def borderItemSelectionEP(GenNode it) '''
new org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy() {
+ «overrideC»
protected java.util.List<?> createSelectionHandles() {
org.eclipse.gef.handles.MoveHandle mh = new org.eclipse.gef.handles.MoveHandle((org.eclipse.gef.GraphicalEditPart) getHost());
mh.setBorder(null);
@@ -373,4 +429,5 @@ def setupNodePlate (GenChildSideAffixedNode it)'''
result.getBounds().setSize(result.getPreferredSize());
'''
+
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend
index 753a66250a3..e9a108a2f11 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/editparts/TextAware.xtend
@@ -24,6 +24,9 @@ import org.eclipse.gmf.codegen.gmfgen.Viewmap
import parsers.ParserProvider
import xpt.Common
import xpt.diagram.ViewmapAttributesUtils_qvto
+import xpt.Common_qvto
+import org.eclipse.gmf.codegen.gmfgen.GenLinkLabel
+import xpt.CodeStyle
//DOCUMENTATION: PapyrusGencode
//This template has been modified to take in account the possibility to have extended direct editors
@@ -31,11 +34,14 @@ import xpt.diagram.ViewmapAttributesUtils_qvto
@Singleton class TextAware extends impl.diagram.editparts.TextAware {
@Inject extension Common
+ @Inject extension CodeStyle
+
@Inject extension ViewmapAttributesUtils_qvto
@Inject extension ParserProvider
-
+ @Inject extension Common_qvto
+
override fields(GenCommonBase it)'''
«generatedMemberComment»
private org.eclipse.gef.tools.DirectEditManager manager;
@@ -58,8 +64,7 @@ import xpt.diagram.ViewmapAttributesUtils_qvto
protected org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration configuration;
««« END: BEGIN: PapyrusGenCode
-'''
-
+'''
override methods(GenCommonBase it, boolean needsRefreshBounds, boolean readOnly, boolean useElementIcon, Viewmap viewmap,
LabelModelFacet modelFacet, GenCommonBase host, GenDiagram diagram) '''
@@ -353,6 +358,7 @@ override getEditTextValidator (GenCommonBase it)'''
public org.eclipse.jface.viewers.ICellEditorValidator getEditTextValidator() {
return new org.eclipse.jface.viewers.ICellEditorValidator() {
+ «overrideI»
public String isValid(final Object value) {
if (value instanceof String) {
final org.eclipse.emf.ecore.EObject element = getParserElement();
@@ -362,11 +368,12 @@ override getEditTextValidator (GenCommonBase it)'''
(org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus) getEditingDomain().runExclusive(
new org.eclipse.emf.transaction.RunnableWithResult.Impl<java.lang.Object>() {
+ «overrideI»
public void run() {
setResult(parser.isValidEditString(new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(element), (String) value));
}
});
- return valid.getCode() == org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus.EDITABLE ? null : valid.getMessage();
+ return valid.getCode() == org.eclipse.gmf.runtime.common.ui.services.parser.IParserEditStatus.EDITABLE ? null : valid.getMessage();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
@@ -430,6 +437,7 @@ override performDirectEdit (GenCommonBase it)'''
protected void performDirectEdit() {
org.eclipse.swt.custom.BusyIndicator.showWhile(org.eclipse.swt.widgets.Display.getDefault(), new java.lang.Runnable() {
+ «overrideI»
public void run() {
getManager().show();
}
@@ -493,7 +501,7 @@ def performDirectEditRequest(GenCommonBase it, GenDiagram diagram ) '''
else if(configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.IAdvancedEditorConfiguration) {
dialog = ((org.eclipse.papyrus.extensionpoints.editors.configuration.IAdvancedEditorConfiguration)configuration).createDialog(org.eclipse.ui.PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), resolveSemanticElement(), configuration.getTextToEdit(resolveSemanticElement()));
} else if(configuration instanceof org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration) {
- dialog = new org.eclipse.papyrus.extensionpoints.editors.ui.ExtendedDirectEditionDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), resolveSemanticElement(), ((org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration)configuration).getTextToEdit(resolveSemanticElement()), (org.eclipse.papyrus.extensionpoints.editors.configuration.IDirectEditorConfiguration)configuration);
+ dialog = new org.eclipse.papyrus.extensionpoints.editors.ui.ExtendedDirectEditionDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), resolveSemanticElement(), configuration.getTextToEdit(resolveSemanticElement()), configuration);
} else {
return;
}
@@ -528,6 +536,7 @@ def initializeDirectEditManager (GenCommonBase it)'''
// initialize the direct edit manager
try {
getEditingDomain().runExclusive(new Runnable() {
+ «overrideI»
public void run() {
if (isActive() && isEditable()) {
if (request.getExtendedData().get(
@@ -570,6 +579,10 @@ override refreshLabel(GenCommonBase it , GenDiagram diagram )'''
maskLabelPolicy = getEditPolicy(org.eclipse.papyrus.infra.gmfdiag.common.editpolicies.IndirectMaskLabelEditPolicy.INDRIRECT_MASK_MANAGED_LABEL);
}
if (maskLabelPolicy == null) {
+ «IF it.oclIsKindOf(typeof(GenLinkLabel))»
+ setLabelTextHelper(getFigure(), getLabelText());
+ setLabelIconHelper(getFigure(), getLabelIcon());
+ «ELSE»
org.eclipse.gmf.runtime.notation.View view = (org.eclipse.gmf.runtime.notation.View)getModel();
if(view.isVisible()) {
setLabelTextHelper(getFigure(), getLabelText());
@@ -578,7 +591,8 @@ override refreshLabel(GenCommonBase it , GenDiagram diagram )'''
else {
setLabelTextHelper(getFigure(), ""); //$NON-NLS-1$
setLabelIconHelper(getFigure(), null);
- }
+ }
+ «ENDIF»
}
Object pdEditPolicy = getEditPolicy(org.eclipse.gef.EditPolicy.PRIMARY_DRAG_ROLE);
if (pdEditPolicy instanceof «diagram.getTextSelectionEditPolicyQualifiedClassName()») {
@@ -678,6 +692,7 @@ override getAccessibleEditPart (GenCommonBase it)'''
if (accessibleEP == null) {
accessibleEP = new AccessibleGraphicalEditPart() {
+ «overrideC»
public void getName(org.eclipse.swt.accessibility.AccessibleEvent e) {
e.result = getLabelTextHelper(getFigure());
}
@@ -800,6 +815,7 @@ def performDefaultDirectEditorEdit (GenCommonBase it)'''
try {
getEditingDomain().runExclusive(new Runnable() {
+ «overrideI»
public void run() {
if (isActive() && isEditable()) {
if (theRequest.getExtendedData().get(org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants.REQ_DIRECTEDIT_EXTENDEDDATA_INITIAL_CHAR) instanceof Character) {
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend
index bec85eefbe8..0206e2b54cc 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/impl/diagram/update/CanonicalUpdate.xtend
@@ -135,5 +135,26 @@ import xpt.editor.VisualIDRegistry
return result;
}
'''
-
+
+ override getEditPartMethod(GenDiagram it) '''
+ «generatedMemberComment»
+ private org.eclipse.gef.EditPart getEditPart(org.eclipse.emf.ecore.EObject domainModelElement, «Domain2Notation(it)» domain2NotationMap) {
+ org.eclipse.gmf.runtime.notation.View view = domain2NotationMap.get(domainModelElement);
+ if (view != null) {
+ return (org.eclipse.gef.EditPart) getHost().getViewer().getEditPartRegistry().get(view);
+ }
+ return null;
+ }
+ '''
+
+ override getHintedEditPartMethod(GenDiagram it) '''
+ «generatedMemberComment»
+ protected final org.eclipse.gef.EditPart getHintedEditPart(org.eclipse.emf.ecore.EObject domainModelElement, «Domain2Notation(it)» domain2NotationMap, int hintVisualId) {
+ org.eclipse.gmf.runtime.notation.View view = domain2NotationMap.getHinted(domainModelElement, «xptVisualIDRegistry.typeMethodCall(it, 'hintVisualId')»);
+ if (view != null) {
+ return (org.eclipse.gef.EditPart) getHost().getViewer().getEditPartRegistry().get(view);
+ }
+ return null;
+ }
+ '''
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/metamodel/MetaModel.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/metamodel/MetaModel.xtend
new file mode 100644
index 00000000000..3b327283dfa
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/metamodel/MetaModel.xtend
@@ -0,0 +1,16 @@
+package aspects.metamodel
+
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature
+import com.google.inject.Inject
+import metamodel.MetaModel_qvto
+import com.google.inject.Singleton
+
+@Singleton class MetaModel extends metamodel.MetaModel {
+
+ @Inject extension MetaModel_qvto;
+
+ override DeclareAndAssign2(GenClass it, String assignee, String src, GenClass srcMetaClass, GenFeature srcFeature, String srcExt, boolean needCast) //
+ '''«getQualifiedInterfaceName(it)» «assignee» = «getFeatureValue(srcFeature, src, srcMetaClass)».«srcExt»;'''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/CodeStyle.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/CodeStyle.xtend
new file mode 100644
index 00000000000..ec09d45079a
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/CodeStyle.xtend
@@ -0,0 +1,12 @@
+package aspects.xpt
+
+import org.eclipse.gmf.codegen.gmfgen.GenCommonBase
+import com.google.inject.Singleton
+
+@Singleton class CodeStyle extends xpt.CodeStyle {
+
+ override overrideI(GenCommonBase xptSelf) '''
+ @Override
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/CreateNodeCommand.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/CreateNodeCommand.xtend
index fa2c0163aa8..93db05c6778 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/CreateNodeCommand.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/CreateNodeCommand.xtend
@@ -197,8 +197,9 @@ import xpt.diagram.Utils_qvto
org.eclipse.papyrus.infra.viewpoints.policy.ModelAddData data = org.eclipse.papyrus.infra.viewpoints.policy.PolicyChecker.getCurrent().getChildAddData(diagram, target, «varName»);
if (data.isPermitted()) {
if (data.isPathDefined()) {
- if (!data.execute(target, «varName»))
+ if (!data.execute(target, «varName»)) {
return org.eclipse.gmf.runtime.common.core.command.CommandResult.newErrorCommandResult("Failed to follow the policy-specified for the insertion of the new element");
+ }
} else {
«extraLineBreak»
«IF containmentMetaFeature != null»
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/ReorientLinkUtils.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/ReorientLinkUtils.xtend
new file mode 100644
index 00000000000..a50891a8806
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/commands/ReorientLinkUtils.xtend
@@ -0,0 +1,65 @@
+package aspects.xpt.diagram.commands
+
+import org.eclipse.gmf.codegen.gmfgen.LinkModelFacet
+import org.eclipse.gmf.codegen.gmfgen.GenLink
+import xpt.Common
+import com.google.inject.Inject
+import com.google.inject.Singleton
+
+@Singleton class ReorientLinkUtils extends xpt.diagram.commands.ReorientLinkUtils {
+
+ @Inject extension Common
+
+ override canReorient(LinkModelFacet it, GenLink link) '''
+ «generatedMemberComment()»
+ public boolean canExecute() {
+ «checkLinkValidity(it)»
+ if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_SOURCE) {
+ return canReorientSource();
+ }
+ if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_TARGET) {
+ return canReorientTarget();
+ }
+ return false;
+ }
+
+ «generatedMemberComment()»
+ protected boolean canReorientSource() {
+ «checkSourceRequestValidity(it, link)»
+ }
+
+ «generatedMemberComment()»
+ protected boolean canReorientTarget() {
+ «checkTargetRequestValidity(it, link)»
+ }
+ '''
+
+ override reorient(LinkModelFacet it) '''
+
+ «generatedMemberComment()»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(
+ org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)
+ throws org.eclipse.core.commands.ExecutionException {
+ if (!canExecute()) {
+ throw new org.eclipse.core.commands.ExecutionException("Invalid arguments in reorient link command"); «nonNLS()»
+ }
+ if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_SOURCE) {
+ return reorientSource();
+ }
+ if (reorientDirection == org.eclipse.gmf.runtime.emf.type.core.requests.ReorientRequest.REORIENT_TARGET) {
+ return reorientTarget();
+ }
+ throw new IllegalStateException();
+ }
+
+ «generatedMemberComment()»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult reorientSource() throws org.eclipse.core.commands.ExecutionException {
+ «reorientSource(it)»
+ }
+
+ «generatedMemberComment()»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult reorientTarget() throws org.eclipse.core.commands.ExecutionException {
+ «reorientTarget(it)»
+ }
+ '''
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend
index aa668808ff3..87614afaa03 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/BaseItemSemanticEditPolicy.xtend
@@ -61,7 +61,7 @@ public class «className(it)» extends org.eclipse.gmf.runtime.diagram.ui.editpoli
if (view instanceof org.eclipse.gmf.runtime.notation.View) {
Integer id = new Integer(«getVisualIDMethodCall(it)»((org.eclipse.gmf.runtime.notation.View) view));
request.getExtendedData().put(VISUAL_ID_KEY, id);
- request.getExtendedData().put(GRAPHICAL_RECONNECTED_EDGE, (org.eclipse.gmf.runtime.notation.View)view);
+ request.getExtendedData().put(GRAPHICAL_RECONNECTED_EDGE, view);
}
}
return super.getCommand(request);
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.xtend
new file mode 100644
index 00000000000..a392aee2527
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/diagram/editpolicies/TextSelectionEditPolicy.xtend
@@ -0,0 +1,42 @@
+package aspects.xpt.diagram.editpolicies
+
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import com.google.inject.Inject
+import xpt.Common
+import com.google.inject.Singleton
+import xpt.CodeStyle
+
+@Singleton class TextSelectionEditPolicy extends xpt.diagram.editpolicies.TextSelectionEditPolicy {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
+
+ override textFeedback_createFocusFeedbackFigure(GenDiagram it) '''
+ «generatedMemberComment»
+ protected org.eclipse.draw2d.IFigure createFocusFeedbackFigure() {
+ return new org.eclipse.draw2d.Figure() {
+
+ «overrideC»
+ protected void paintFigure(org.eclipse.draw2d.Graphics graphics) {
+ graphics.drawFocus(getBounds().getResized(-1, -1));
+ }
+ };
+ }
+ '''
+
+ override textFeedback_getHostPositionListener(GenDiagram it) '''
+ «generatedMemberComment»
+ private org.eclipse.draw2d.FigureListener getHostPositionListener() {
+ if (hostPositionListener == null) {
+ hostPositionListener = new org.eclipse.draw2d.FigureListener() {
+ «overrideI»
+ public void figureMoved(org.eclipse.draw2d.IFigure source) {
+ refreshFeedback();
+ }
+ };
+ }
+ return hostPositionListener;
+ }
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/CreationWizard.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/CreationWizard.xtend
new file mode 100644
index 00000000000..b5c3548f670
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/CreationWizard.xtend
@@ -0,0 +1,174 @@
+package aspects.xpt.editor
+
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Common
+import com.google.inject.Inject
+import xpt.CodeStyle
+import xpt.editor.GenDiagram_qvto
+import xpt.editor.CreationWizardPage
+import xpt.Externalizer
+import plugin.Activator
+import xpt.editor.DiagramEditorUtil
+import xpt.ExternalizerUtils_qvto
+import com.google.inject.Singleton
+
+@Singleton class CreationWizard extends xpt.editor.CreationWizard {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
+ @Inject extension ExternalizerUtils_qvto
+ @Inject extension GenDiagram_qvto
+
+ @Inject Activator xptActivator
+ @Inject CreationWizardPage xptCreationWizardPage
+ @Inject DiagramEditorUtil xptDiagramEditorUtil
+ @Inject Externalizer xptExternalizer
+
+ override CreationWizard(GenDiagram it) '''
+ «copyright(editorGen)»
+ package «packageName(it)»;
+
+ «generatedClassComment»
+ public class «className(it)»
+ «extendsList(it)» «implementsList(it)» {
+
+ «generatedMemberComment»
+ private org.eclipse.ui.IWorkbench workbench;
+
+ «generatedMemberComment»
+ protected org.eclipse.jface.viewers.IStructuredSelection selection;
+
+ «generatedMemberComment»
+ protected «xptCreationWizardPage.qualifiedClassName(it)» diagramModelFilePage;
+
+ «IF standaloneDomainModel(it)»
+ «generatedMemberComment»
+ protected «xptCreationWizardPage.qualifiedClassName(it)» domainModelFilePage;
+ «ENDIF»
+
+ «generatedMemberComment»
+ protected org.eclipse.emf.ecore.resource.Resource diagram;
+
+ «generatedMemberComment»
+ private boolean openNewlyCreatedDiagramEditor = true;
+
+ «generatedMemberComment»
+ public org.eclipse.ui.IWorkbench getWorkbench() {
+ return workbench;
+ }
+
+ «generatedMemberComment»
+ public org.eclipse.jface.viewers.IStructuredSelection getSelection() {
+ return selection;
+ }
+
+ «generatedMemberComment»
+ public final org.eclipse.emf.ecore.resource.Resource getDiagram() {
+ return diagram;
+ }
+
+ «generatedMemberComment»
+ public final boolean isOpenNewlyCreatedDiagramEditor() {
+ return openNewlyCreatedDiagramEditor;
+ }
+
+ «generatedMemberComment»
+ public void setOpenNewlyCreatedDiagramEditor(boolean openNewlyCreatedDiagramEditor) {
+ this.openNewlyCreatedDiagramEditor = openNewlyCreatedDiagramEditor;
+ }
+
+ «generatedMemberComment»
+ public void init(org.eclipse.ui.IWorkbench workbench, org.eclipse.jface.viewers.IStructuredSelection selection) {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(«xptExternalizer.accessorCall(editorGen, titleKey(i18nKeyForCreationWizard(it)))»);
+ setDefaultPageImageDescriptor(«xptActivator.qualifiedClassName(editorGen.plugin)».getBundledImageDescriptor(
+ "icons/wizban/New«IF domainDiagramElement != null»«domainDiagramElement.genPackage.prefix»«ENDIF»Wizard.gif")); //$NON-NLS-1$
+ setNeedsProgressMonitor(true);
+ }
+
+ «generatedMemberComment»
+ public void addPages() {
+ diagramModelFilePage = new «xptCreationWizardPage.qualifiedClassName(it)»(
+ "DiagramModelFile", getSelection(), "«editorGen.diagramFileExtension»"); //$NON-NLS-1$ //$NON-NLS-2$
+ diagramModelFilePage.setTitle(«xptExternalizer.accessorCall(editorGen,
+ titleKey(i18nKeyForCreationWizardDiagramPage(it)))»);
+ diagramModelFilePage.setDescription(«xptExternalizer.accessorCall(editorGen,
+ descriptionKey(i18nKeyForCreationWizardDiagramPage(it)))»);
+ addPage(diagramModelFilePage);
+ «IF standaloneDomainModel(it)»
+
+ domainModelFilePage = new «xptCreationWizardPage.qualifiedClassName(it)»(
+ "DomainModelFile", getSelection(), "«editorGen.domainFileExtension»") { //$NON-NLS-1$ //$NON-NLS-2$
+
+ «overrideC»
+ public void setVisible(boolean visible) {
+ if (visible) {
+ String fileName = diagramModelFilePage.getFileName();
+ fileName = fileName.substring(0, fileName.length() - ".«editorGen.diagramFileExtension»".length()); //$NON-NLS-1$
+ setFileName(«xptDiagramEditorUtil.qualifiedClassName(it)».getUniqueFileName(
+ getContainerFullPath(), fileName, "«editorGen.domainFileExtension»")); //$NON-NLS-1$
+ }
+ super.setVisible(visible);
+ }
+ };
+ domainModelFilePage.setTitle(«xptExternalizer.accessorCall(editorGen,
+ titleKey(i18nKeyForCreationWizardDomainPage(it)))»);
+ domainModelFilePage.setDescription(«xptExternalizer.accessorCall(editorGen,
+ descriptionKey(i18nKeyForCreationWizardDomainPage(it)))»);
+ addPage(domainModelFilePage);
+ «ENDIF»
+ }
+
+ «generatedMemberComment»
+ public boolean performFinish() {
+ org.eclipse.jface.operation.IRunnableWithProgress op =
+ «IF editorGen.application == null»
+ new org.eclipse.ui.actions.WorkspaceModifyOperation(null) {
+
+ «overrideC»
+ protected void execute(org.eclipse.core.runtime.IProgressMonitor monitor)
+ throws org.eclipse.core.runtime.CoreException, InterruptedException {
+ «ELSE»
+ new org.eclipse.jface.operation.IRunnableWithProgress() {
+
+ public void run(org.eclipse.core.runtime.IProgressMonitor monitor)
+ throws InvocationTargetException, InterruptedException {
+ «ENDIF»
+ diagram = «xptDiagramEditorUtil.qualifiedClassName(it)».createDiagram(diagramModelFilePage.getURI(),
+ «IF standaloneDomainModel(it)»
+ domainModelFilePage.getURI(),
+ «ENDIF»
+ monitor);
+ if (isOpenNewlyCreatedDiagramEditor() && diagram != null) {
+ try {
+ «xptDiagramEditorUtil.qualifiedClassName(it)».openDiagram(diagram);
+ } catch (org.eclipse.ui.PartInitException e) {
+ org.eclipse.jface.dialogs.ErrorDialog.openError(getContainer().getShell(),
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForCreationWizardOpenEditorError(it))», null, e.getStatus());
+ }
+ }
+ }
+ };
+ try {
+ getContainer().run(false, true, op);
+ } catch (InterruptedException e) {
+ return false;
+ } catch (java.lang.reflect.InvocationTargetException e) {
+ if (e.getTargetException() instanceof org.eclipse.core.runtime.CoreException) {
+ org.eclipse.jface.dialogs.ErrorDialog.openError(getContainer().getShell(),
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForCreationWizardCreationError(it))», null,
+ ((org.eclipse.core.runtime.CoreException) e.getTargetException()).getStatus());
+ } else {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError(
+ "Error creating diagram", e.getTargetException()); //$NON-NLS-1$
+ }
+ return false;
+ }
+ return diagram != null;
+ }
+ «additions(it)»
+ }
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorContextMenuProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorContextMenuProvider.xtend
index e2026f1c946..80bb6f5de02 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorContextMenuProvider.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorContextMenuProvider.xtend
@@ -17,12 +17,13 @@ import com.google.inject.Inject
import com.google.inject.Singleton
import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import plugin.Activator
-import xpt.Common
-
+import xpt.Common import xpt.CodeStyle
+
//We remove the dependance with DeleteElementAction. Now this action is added to the popup menu with the extension point org.eclipse.ui.popup
//in org.eclipse.papyrus.uml.diagram.common
@Singleton class DiagramEditorContextMenuProvider extends xpt.editor.DiagramEditorContextMenuProvider {
@Inject extension Common;
+ @Inject extension CodeStyle
@Inject Activator xptActivator;
@@ -64,6 +65,7 @@ import xpt.Common
org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(
(org.eclipse.emf.ecore.EObject) getViewer().getContents().getModel()).runExclusive(new Runnable() {
+ «overrideI(it.editorGen.diagram)»
public void run() {
org.eclipse.gmf.runtime.common.ui.services.action.contributionitem.ContributionItemService.getInstance().contributeToPopupMenu(
DiagramEditorContextMenuProvider.this, part);
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorUtil.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorUtil.xtend
new file mode 100644
index 00000000000..b2c92c7b63c
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DiagramEditorUtil.xtend
@@ -0,0 +1,87 @@
+package aspects.xpt.editor
+
+import com.google.inject.Inject
+import xpt.Common
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Externalizer
+import xpt.CodeStyle
+import metamodel.MetaModel
+import plugin.Activator
+import xpt.editor.GenDiagram_qvto
+import com.google.inject.Singleton
+
+@Singleton class DiagramEditorUtil extends xpt.editor.DiagramEditorUtil {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
+ @Inject extension GenDiagram_qvto
+
+ @Inject Activator xptActivator
+ @Inject Externalizer xptExternalizer
+ @Inject MetaModel xptMetaModel
+
+ override createDiagramMethod(GenDiagram it) '''
+ «generatedMemberComment(
+ (if(editorGen.application == null) 'This method should be called within a workspace modify operation since it creates resources.' else ''))»
+ public static org.eclipse.emf.ecore.resource.Resource createDiagram(org.eclipse.emf.common.util.URI diagramURI,«IF standaloneDomainModel(
+ it)» org.eclipse.emf.common.util.URI modelURI,«ENDIF» org.eclipse.core.runtime.IProgressMonitor progressMonitor) {
+ org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain();
+ progressMonitor.beginTask(«xptExternalizer.accessorCall(editorGen, i18nKeyForCreateDiagramProgressTask(it))», 3);
+ final org.eclipse.emf.ecore.resource.Resource diagramResource = editingDomain.getResourceSet().createResource(diagramURI);
+ «IF standaloneDomainModel(it)»
+ final org.eclipse.emf.ecore.resource.Resource modelResource = editingDomain.getResourceSet().createResource(modelURI);
+ «ELSEIF domainDiagramElement != null && hasDocumentRoot(it)/*for standalone models, we assume its resourcefactory would be able to set extendedMetaData option*/»
+ ((org.eclipse.emf.ecore.xmi.XMLResource) diagramResource).getDefaultSaveOptions().put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ ((org.eclipse.emf.ecore.xmi.XMLResource) diagramResource).getDefaultLoadOptions().put(org.eclipse.emf.ecore.xmi.XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE);
+ «ENDIF»
+ final String diagramName = diagramURI.lastSegment();
+ org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand command = new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(editingDomain, «xptExternalizer.
+ accessorCall(editorGen, i18nKeyForCreateDiagramCommandLabel(it))», java.util.Collections.EMPTY_LIST) {
+ «overrideC»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException {
+ «IF domainDiagramElement != null»
+ «xptMetaModel.QualifiedClassName(domainDiagramElement)» model = createInitialModel();
+ attachModelToResource(model, «IF standaloneDomainModel(it)»model«ELSE»diagram«ENDIF»Resource);
+ «ENDIF»
+ «extraLineBreak»
+ org.eclipse.gmf.runtime.notation.Diagram diagram = org.eclipse.gmf.runtime.diagram.core.services.ViewService.createDiagram(
+ «IF domainDiagramElement != null»
+ «xptMetaModel.DowncastToEObject(domainDiagramElement, 'model')»,
+ «ENDIF»
+ «VisualIDRegistry::modelID(it)», «xptActivator.preferenceHintAccess(editorGen)»);
+ if (diagram != null) {
+ diagramResource.getContents().add(diagram);
+ diagram.setName(diagramName);
+ «IF domainDiagramElement != null»
+ diagram.setElement(«xptMetaModel.DowncastToEObject(domainDiagramElement, 'model')»);
+ «ENDIF»
+ }
+
+ try {
+ «IF standaloneDomainModel(it)»modelResource.save(«callGetSaveOptions(it)»);«ENDIF»
+ diagramResource.save(«callGetSaveOptions(it)»);
+ } catch (java.io.IOException e) {
+ «/*
+ * TODO CommandResult.newErrorCommandResult(e) would be better? Or even throw ExecutionEx?
+ * */
+ extraLineBreak»
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError("Unable to store model and diagram resources", e); «nonNLS(1)»
+ }
+ return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();
+ }
+ };
+ try {
+ org.eclipse.core.commands.operations.OperationHistoryFactory.getOperationHistory().execute(command, new org.eclipse.core.runtime.SubProgressMonitor(progressMonitor, 1), null);
+ } catch (org.eclipse.core.commands.ExecutionException e) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError("Unable to create model and diagram", e); «nonNLS(
+ 1)»
+ }
+ «IF editorGen.application == null»
+ «IF standaloneDomainModel(it)»setCharset(org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(modelResource));«ENDIF»
+ setCharset(org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(diagramResource));
+ «ENDIF»
+ return diagramResource;
+ }
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DocumentProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DocumentProvider.xtend
index aeea7a7b507..5d809566671 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DocumentProvider.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/DocumentProvider.xtend
@@ -18,12 +18,16 @@ import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import plugin.Activator
import xpt.Common
import xpt.Externalizer
+import xpt.CodeStyle
+import xpt.editor.DiagramEditorUtil
@Singleton class DocumentProvider extends xpt.editor.DocumentProvider {
@Inject extension Common;
+ @Inject extension CodeStyle
@Inject Activator xptActivator;
@Inject Externalizer xptExternalizer;
+ @Inject DiagramEditorUtil xptDiagramEditorUtil
@@ -59,14 +63,14 @@ import xpt.Externalizer
if (uri.fragment() != null) {
org.eclipse.emf.ecore.EObject rootElement = resource.getEObject(uri.fragment());
if (rootElement instanceof org.eclipse.gmf.runtime.notation.Diagram) {
- document.setContent((org.eclipse.gmf.runtime.notation.Diagram) rootElement);
+ document.setContent(rootElement);
return;
}
} else {
for (java.util.Iterator<org.eclipse.emf.ecore.EObject> it = resource.getContents().iterator(); it.hasNext();) {
Object rootElement = it.next();
if (rootElement instanceof org.eclipse.gmf.runtime.notation.Diagram) {
- document.setContent((org.eclipse.gmf.runtime.notation.Diagram) rootElement);
+ document.setContent(rootElement);
return;
}
}
@@ -88,4 +92,245 @@ import xpt.Externalizer
}
}
'''
+
+ override createEditingDomain(GenDiagram it) '''
+ «generatedMemberComment»
+ private org.eclipse.emf.transaction.TransactionalEditingDomain createEditingDomain() {
+ org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain = org.eclipse.gmf.runtime.diagram.core.DiagramEditingDomainFactory.getInstance().createEditingDomain();
+ editingDomain.setID("«editingDomainID»"); «nonNLS(1)»
+ final org.eclipse.emf.transaction.NotificationFilter diagramResourceModifiedFilter = org.eclipse.emf.transaction.NotificationFilter.createNotifierFilter(editingDomain.getResourceSet()).and(org.eclipse.emf.transaction.NotificationFilter.createEventTypeFilter(org.eclipse.emf.common.notify.Notification.ADD)).and(org.eclipse.emf.transaction.NotificationFilter.createFeatureFilter(org.eclipse.emf.ecore.resource.ResourceSet.class, org.eclipse.emf.ecore.resource.ResourceSet.RESOURCE_SET__RESOURCES));
+ editingDomain.getResourceSet().eAdapters().add(new org.eclipse.emf.common.notify.Adapter() {
+
+ private org.eclipse.emf.common.notify.Notifier myTarger;
+
+ «overrideI»
+ public org.eclipse.emf.common.notify.Notifier getTarget() {
+ return myTarger;
+ }
+
+ «overrideI»
+ public boolean isAdapterForType(Object type) {
+ return false;
+ }
+
+ «overrideI»
+ public void notifyChanged(org.eclipse.emf.common.notify.Notification notification) {
+ if (diagramResourceModifiedFilter.matches(notification)) {
+ Object value = notification.getNewValue();
+ if (value instanceof org.eclipse.emf.ecore.resource.Resource) {
+ ((org.eclipse.emf.ecore.resource.Resource) value).setTrackingModification(true);
+ }
+ }
+ }
+
+ «overrideI»
+ public void setTarget(org.eclipse.emf.common.notify.Notifier newTarget) {
+ myTarger = newTarget;
+ }
+
+ });
+
+ return editingDomain;
+ }
+ '''
+
+ override doSaveDocument(GenDiagram it) '''
+ «generatedMemberComment»
+ protected void doSaveDocument(org.eclipse.core.runtime.IProgressMonitor monitor, Object element, org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument document, boolean overwrite) throws org.eclipse.core.runtime.CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ if (!overwrite && !info.isSynchronized()) {
+ throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, «xptActivator.qualifiedClassName(editorGen.plugin)».ID,
+ «IF null == editorGen.application»org.eclipse.core.resources.IResourceStatus.OUT_OF_SYNC_LOCAL«ELSE»org.eclipse.core.runtime.IStatus.ERROR«ENDIF»,
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForDocumentUnsynchronizedFileSaveError(it))»,
+ null));
+ }
+ «IF null == editorGen.application»
+ info.stopResourceListening();
+ «ENDIF»
+ fireElementStateChanging(element);
+ try {
+ monitor.beginTask(«xptExternalizer.accessorCall(editorGen, i18nKeyForDocumentSaveDiagramTask(it))», info.getResourceSet().getResources().size() + 1); //"Saving diagram"
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ monitor.setTaskName(org.eclipse.osgi.util.NLS.bind(
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForDocumentSaveNextResourceTask(it))»,
+ nextResource.getURI()));
+ if (nextResource.isLoaded() && !info.getEditingDomain().isReadOnly(nextResource)) {
+ try {
+ nextResource.save(«xptDiagramEditorUtil.callGetSaveOptions(it)»);
+ } catch (java.io.IOException e) {
+ fireElementStateChangeFailed(element);
+ throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, «xptActivator.qualifiedClassName(editorGen.plugin)».ID, org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.EditorStatusCodes.RESOURCE_FAILURE, e.getLocalizedMessage(), null));
+ }
+ }
+ monitor.worked(1);
+ }
+ monitor.done();
+ info.setModificationStamp(computeModificationStamp(info));
+ } catch (RuntimeException x) {
+ fireElementStateChangeFailed(element);
+ throw x;
+ } «IF null == editorGen.application» finally {
+ info.startResourceListening();
+ } «ENDIF»
+ } else {
+ org.eclipse.emf.common.util.URI newResoruceURI;
+ java.util.List<org.eclipse.core.resources.IFile> affectedFiles = null;
+ «IF null == editorGen.application»if (element instanceof «fileEditorInputClassFQName(it)») {
+ org.eclipse.core.resources.IFile newFile = ((«fileEditorInputClassFQName(it)») element).getFile();
+ affectedFiles = java.util.Collections.singletonList(newFile);
+ newResoruceURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(newFile.getFullPath().toString(), true);
+ } else «ENDIF»if(element instanceof «uriEditorInputClassFQName(it)») {
+ newResoruceURI = ((«uriEditorInputClassFQName(it)») element).getURI();
+ } else {
+ fireElementStateChangeFailed(element);
+ «throwIncorrectInputException(it)»
+ }
+ if (false == document instanceof org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument) {
+ fireElementStateChangeFailed(element);
+ throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, «xptActivator.qualifiedClassName(editorGen.plugin)».ID, 0,
+ "Incorrect document used: " + document + " instead of org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument", null)); «nonNLS(1)» «nonNLS(2)»
+ }
+ org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument diagramDocument = (org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument) document;
+ final org.eclipse.emf.ecore.resource.Resource newResource = diagramDocument.getEditingDomain().getResourceSet().createResource(newResoruceURI);
+ final org.eclipse.gmf.runtime.notation.Diagram diagramCopy = org.eclipse.emf.ecore.util.EcoreUtil.copy(diagramDocument.getDiagram());
+ try {
+ new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(diagramDocument.getEditingDomain(), org.eclipse.osgi.util.NLS.bind(«xptExternalizer.accessorCall(editorGen, i18nKeyForDocumentSaveAs(it))», diagramCopy.getName()), affectedFiles) {
+ «overrideC»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info) throws org.eclipse.core.commands.ExecutionException {
+ newResource.getContents().add(diagramCopy);
+ return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();
+ }
+ }.execute(monitor, null);
+ newResource.save(«xptDiagramEditorUtil.callGetSaveOptions(it)»);
+ } catch (org.eclipse.core.commands.ExecutionException e) {
+ fireElementStateChangeFailed(element);
+ throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, «xptActivator.qualifiedClassName(editorGen.plugin)».ID, 0, e.getLocalizedMessage(), null));
+ } catch (java.io.IOException e) {
+ fireElementStateChangeFailed(element);
+ throw new org.eclipse.core.runtime.CoreException(new org.eclipse.core.runtime.Status(org.eclipse.core.runtime.IStatus.ERROR, «xptActivator.qualifiedClassName(editorGen.plugin)».ID, 0, e.getLocalizedMessage(), null));
+ }
+ newResource.unload();
+ }
+ }
+ '''
+
+ override computeSchedulingRule(GenDiagram it) '''
+ «generatedMemberComment»
+ private org.eclipse.core.runtime.jobs.ISchedulingRule computeSchedulingRule(org.eclipse.core.resources.IResource toCreateOrModify) {
+ if (toCreateOrModify.exists()) {
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(toCreateOrModify);
+ }
+ org.eclipse.core.resources.IResource parent = toCreateOrModify;
+ do {«/*FIXME [MG] the bug is closed long ago, still need? */»
+ /*
+ * XXX This is a workaround for
+ * https://bugs.eclipse.org/bugs/show_bug.cgi?id=67601
+ * IResourceRuleFactory.createRule should iterate the hierarchy
+ * itself.
+ */
+ toCreateOrModify = parent;
+ parent = toCreateOrModify.getParent();
+ } while (parent != null && !parent.exists());
+
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().createRule(toCreateOrModify);
+ }
+ '''
+
+ override doValidateState(GenDiagram it) '''
+ «generatedMemberComment»
+ protected void doValidateState(Object element, Object computationContext) throws org.eclipse.core.runtime.CoreException {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ java.util.LinkedList<org.eclipse.core.resources.IFile> files2Validate = new java.util.LinkedList<org.eclipse.core.resources.IFile>();
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null && file.isReadOnly()) {
+ files2Validate.add(file);
+ }
+ }
+ org.eclipse.core.resources.ResourcesPlugin.getWorkspace().validateEdit(files2Validate.toArray(new org.eclipse.core.resources.IFile[files2Validate.size()]), computationContext);
+ }
+
+ super.doValidateState(element, computationContext);
+ }
+ '''
+
+ override getResetRule(GenDiagram it) '''
+ «generatedMemberComment»
+ protected org.eclipse.core.runtime.jobs.ISchedulingRule getResetRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().modifyRule(file));
+ }
+ }
+ return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));
+ }
+ return null;
+ }
+ '''
+
+ override getSaveRule(GenDiagram it) '''
+ «generatedMemberComment»
+ protected org.eclipse.core.runtime.jobs.ISchedulingRule getSaveRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(computeSchedulingRule(file));
+ }
+ }
+ return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));
+ }
+ return null;
+ }
+ '''
+
+ override getSynchronizeRule(GenDiagram it) '''
+ «generatedMemberComment»
+ protected org.eclipse.core.runtime.jobs.ISchedulingRule getSynchronizeRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {
+ java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> rules = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ rules.add(org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().refreshRule(file));
+ }
+ }
+ return new org.eclipse.core.runtime.jobs.MultiRule(rules.toArray(new org.eclipse.core.runtime.jobs.ISchedulingRule[rules.size()]));
+ }
+ return null;
+ }
+ '''
+
+ override getValidateStateRule(GenDiagram it) '''
+ «generatedMemberComment»
+ protected org.eclipse.core.runtime.jobs.ISchedulingRule getValidateStateRule(Object element) {
+ ResourceSetInfo info = getResourceSetInfo(element);
+ if (info != null) {«/*FIXME: [MG] bad copy paste here, files should be <IFile>, its a miracle that it does not fail in runtime at toArray stage */»
+ java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule> files = new java.util.LinkedList<org.eclipse.core.runtime.jobs.ISchedulingRule>();
+ for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = info.getLoadedResourcesIterator(); it.hasNext();) {
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
+ org.eclipse.core.resources.IFile file = org.eclipse.emf.workspace.util.WorkspaceSynchronizer.getFile(nextResource);
+ if (file != null) {
+ files.add(file);
+ }
+ }
+ return org.eclipse.core.resources.ResourcesPlugin.getWorkspace().getRuleFactory().validateEditRule(files.toArray(new org.eclipse.core.resources.IFile[files.size()]));
+ }
+ return null;
+ }
+ '''
} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/Editor.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/Editor.xtend
index 30ceac2cf6d..760b8b2e38c 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/Editor.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/Editor.xtend
@@ -23,11 +23,13 @@ import org.eclipse.gmf.codegen.gmfgen.GenNavigator
import org.eclipse.gmf.codegen.gmfgen.Palette
import xpt.Common
import xpt.navigator.Utils_qvto
+import xpt.CodeStyle
@Singleton class Editor extends xpt.editor.Editor {
@Inject extension Common;
@Inject NavigatorLinkHelper xptNavigatorLinkHelper;
- @Inject extension Utils_qvto;
+ @Inject extension Utils_qvto;
+ @Inject extension CodeStyle
override extendsList(GenEditorView it) '''extends org.eclipse.papyrus.uml.diagram.common.part.UmlGmfDiagramEditor'''
@@ -212,6 +214,7 @@ protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerPr
* with a defaultTool that is the SelectToolEx that undestands how to handle the enter
* key which will result in the creation of the shape also.
*/
+ «overrideC(it.editorGen.diagram)»
protected void configurePaletteViewer(org.eclipse.gef.ui.palette.PaletteViewer viewer) {
super.configurePaletteViewer(viewer);
@@ -229,6 +232,7 @@ protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerPr
viewer.setCustomizer(createPaletteCustomizer());
}
+ «overrideC(it.editorGen.diagram)»
public org.eclipse.gef.ui.palette.PaletteViewer createPaletteViewer(org.eclipse.swt.widgets.Composite parent) {
org.eclipse.gef.ui.palette.PaletteViewer pViewer = constructPaletteViewer();
pViewer.createControl(parent);
@@ -256,6 +260,7 @@ protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerPr
* the KeyEvent
* @return <code>true</code> if KeyEvent was handled in some way
*/
+ «overrideC(it.editorGen.diagram)»
public boolean keyReleased(org.eclipse.swt.events.KeyEvent event) {
if (event.keyCode == org.eclipse.swt.SWT.Selection) {
@@ -303,6 +308,7 @@ protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerPr
*
* @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
*/
+ «overrideI(it.editorGen.diagram)»
public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e) {
org.eclipse.gef.Tool tool = getPaletteViewer().getActiveTool().createTool();
@@ -320,10 +326,12 @@ protected org.eclipse.gef.ui.palette.PaletteViewerProvider createPaletteViewerPr
}
}
+ «overrideI(it.editorGen.diagram)»
public void mouseDown(org.eclipse.swt.events.MouseEvent e) {
// do nothing
}
+ «overrideI(it.editorGen.diagram)»
public void mouseUp(org.eclipse.swt.events.MouseEvent e) {
// Deactivate current active tool here if a
// double-click was handled.
@@ -374,6 +382,7 @@ def configureDiagramEditDomain (GenEditorView it)'''
super.configureDiagramEditDomain();
getDiagramEditDomain().getDiagramCommandStack().addCommandStackListener(new org.eclipse.gef.commands.CommandStackListener() {
+ «overrideI(it.editorGen.diagram)»
public void commandStackChanged(java.util.EventObject event) {
firePropertyChange( org.eclipse.ui.IEditorPart.PROP_DIRTY);
}
@@ -500,4 +509,31 @@ protected String getContextID() {
}
'''
+ override getAdapter(GenEditorView it) '''
+ «IF !hasPropertySheet(it) || hasNavigator(it)»
+
+ «generatedMemberComment»
+ @SuppressWarnings("rawtypes")
+ public Object getAdapter(Class type) {
+ «IF !hasPropertySheet(it)»
+ if (type == org.eclipse.ui.views.properties.IPropertySheetPage.class) {
+ return null;
+ }
+ «ENDIF»
+ «IF hasNavigator(it)»
+ if (type == org.eclipse.ui.part.IShowInTargetList.class) {
+ return new org.eclipse.ui.part.IShowInTargetList() {
+
+ «overrideI(it.editorGen.diagram)»
+ public String[] getShowInTargetIds() {
+ return new String[] { org.eclipse.ui.navigator.resources.ProjectExplorer.VIEW_ID };
+ }
+ };
+ }
+ «ENDIF»
+ return super.getAdapter(type);
+ }
+ «ENDIF»
+ '''
+
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/InitDiagramFileAction.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/InitDiagramFileAction.xtend
new file mode 100644
index 00000000000..c5f3afdc95e
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/InitDiagramFileAction.xtend
@@ -0,0 +1,81 @@
+package aspects.xpt.editor
+
+import xpt.Common
+import com.google.inject.Inject
+import plugin.Activator
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import xpt.Externalizer
+import xpt.ExternalizerUtils_qvto
+import com.google.inject.Singleton
+
+@Singleton class InitDiagramFileAction extends xpt.editor.InitDiagramFileAction {
+
+ @Inject extension Common
+ @Inject extension ExternalizerUtils_qvto
+
+ @Inject Activator xptActivator
+ @Inject xpt.editor.DiagramEditorUtil xptDiagramEditorUtil
+ @Inject Externalizer xptExternalizer
+
+ override classBody_PDE(GenDiagram it) '''
+ «generatedMemberComment»
+ private org.eclipse.ui.IWorkbenchPart targetPart;
+
+ «generatedMemberComment»
+ private org.eclipse.emf.common.util.URI domainModelURI;
+
+ «generatedMemberComment»
+ public void setActivePart(org.eclipse.jface.action.IAction action, org.eclipse.ui.IWorkbenchPart targetPart) {
+ this.targetPart = targetPart;
+ }
+
+ «generatedMemberComment»
+ public void selectionChanged(org.eclipse.jface.action.IAction action, org.eclipse.jface.viewers.ISelection selection) {
+ domainModelURI = null;
+ action.setEnabled(false);
+ if (selection instanceof org.eclipse.jface.viewers.IStructuredSelection == false || selection.isEmpty()) {
+ return;
+ }
+ org.eclipse.core.resources.IFile file =
+ (org.eclipse.core.resources.IFile) ((org.eclipse.jface.viewers.IStructuredSelection) selection).getFirstElement();
+ domainModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(file.getFullPath().toString(), true);
+ action.setEnabled(true);
+ }
+
+ «generatedMemberComment»
+ private org.eclipse.swt.widgets.Shell getShell() {
+ return targetPart.getSite().getShell();
+ }
+
+ «generatedMemberComment»
+ public void run(org.eclipse.jface.action.IAction action) {
+ org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain =
+ org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain();
+ «IF editorGen.sameFileForDiagramAndModel»
+ org.eclipse.emf.ecore.resource.ResourceSet resourceSet = new org.eclipse.emf.ecore.resource.impl.ResourceSetImpl();
+ «ELSE»
+ org.eclipse.emf.ecore.resource.ResourceSet resourceSet = editingDomain.getResourceSet();
+ «ENDIF»
+ org.eclipse.emf.ecore.EObject diagramRoot = null;
+ try {
+ org.eclipse.emf.ecore.resource.Resource resource = resourceSet.getResource(domainModelURI, true);
+ diagramRoot = resource.getContents().get(0);
+ } catch (org.eclipse.emf.common.util.WrappedException ex) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError(
+ "Unable to load resource: " + domainModelURI, ex); «nonNLS(1)»
+ }
+ if (diagramRoot == null) {
+ org.eclipse.jface.dialogs.MessageDialog.openError(getShell(),
+ «xptExternalizer.accessorCall(editorGen, titleKey(i18nKeyForInitDiagramFileResourceErrorDialog()))»,
+ «xptExternalizer.accessorCall(editorGen, messageKey(i18nKeyForInitDiagramFileResourceErrorDialog()))»);
+ return;
+ }
+ org.eclipse.jface.wizard.Wizard wizard = new «editorGen.diagram.getNewDiagramFileWizardQualifiedClassName()»(domainModelURI, diagramRoot, editingDomain);
+ wizard.setWindowTitle(org.eclipse.osgi.util.NLS.bind(
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForInitDiagramFileWizardTitle())»,
+ «VisualIDRegistry::modelID(editorGen.diagram)»));
+ «xptDiagramEditorUtil.qualifiedClassName(editorGen.diagram)».runWizard(getShell(), wizard, "InitDiagramFile"); «nonNLS(
+ 1)»
+ }
+ '''
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/NewDiagramFileWizard.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/NewDiagramFileWizard.xtend
index 8d765a46cee..c6ba5db9b2e 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/NewDiagramFileWizard.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/NewDiagramFileWizard.xtend
@@ -17,10 +17,24 @@ import com.google.inject.Singleton
import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import xpt.Externalizer
import xpt.ExternalizerUtils_qvto
+import xpt.Common
+import xpt.editor.ModelElementSelectionPage
+import plugin.Activator
+import xpt.editor.DiagramContentInitializer
+import xpt.CodeStyle
@Singleton class NewDiagramFileWizard extends xpt.editor.NewDiagramFileWizard {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
@Inject extension ExternalizerUtils_qvto;
+
+ @Inject Activator xptActivator
+ @Inject DiagramEditorUtil xptDiagramEditorUtil
@Inject Externalizer xptExternalizer;
+ @Inject DiagramContentInitializer xptDiagramContentInitializer
+ @Inject ModelElementSelectionPage xptModelElementSelectionPage
+ @Inject xpt.editor.VisualIDRegistry xptVisualIDRegistry
override i18nValues(GenDiagram it) '''
«xptExternalizer.messageEntry(nameKey(i18nKeyForNewDiagramFileWizardCreationPage(it)), 'Initialize new diagram file')»
@@ -43,5 +57,156 @@ import xpt.ExternalizerUtils_qvto
'Incorrect model object stored as a root resource object')»
'''
-
+ override NewDiagramFileWizard(GenDiagram it) '''
+ «copyright(editorGen)»
+ package «packageName(it)»;
+
+ «generatedClassComment»
+ public class «className(it)» extends org.eclipse.jface.wizard.Wizard {
+
+ «generatedMemberComment»
+ private «creationPage(it)» myFileCreationPage;
+
+ «generatedMemberComment»
+ private «xptModelElementSelectionPage.qualifiedClassName(it)» diagramRootElementSelectionPage;
+
+ «generatedMemberComment»
+ private org.eclipse.emf.transaction.TransactionalEditingDomain myEditingDomain;
+
+ «generatedMemberComment»
+ public «className(it)»(org.eclipse.emf.common.util.URI domainModelURI,
+ org.eclipse.emf.ecore.EObject diagramRoot,
+ org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain) {
+ «_assert('domainModelURI != null : \"Domain model uri must be specified\"')»
+ «_assert('diagramRoot != null : \"Doagram root element must be specified\"')»
+ «_assert('editingDomain != null : \"Editing domain must be specified\"')»
+
+ myFileCreationPage = new «creationPage(it)»(«xptExternalizer.accessorCall(editorGen,
+ nameKey(i18nKeyForNewDiagramFileWizardCreationPage(it)))», org.eclipse.jface.viewers.StructuredSelection.EMPTY);
+ myFileCreationPage.setTitle(«xptExternalizer.accessorCall(editorGen,
+ titleKey(i18nKeyForNewDiagramFileWizardCreationPage(it)))»);
+ myFileCreationPage.setDescription(org.eclipse.osgi.util.NLS.bind(
+ «xptExternalizer.accessorCall(editorGen, descriptionKey(i18nKeyForNewDiagramFileWizardCreationPage(it)))»,
+ «VisualIDRegistry::modelID(it)»));
+ org.eclipse.core.runtime.IPath filePath;
+ String fileName = org.eclipse.emf.common.util.URI.decode(domainModelURI.trimFileExtension().lastSegment());
+ if (domainModelURI.isPlatformResource()) {
+ filePath = new org.eclipse.core.runtime.Path(domainModelURI.trimSegments(1).toPlatformString(true));
+ } else if (domainModelURI.isFile()) {
+ filePath = new org.eclipse.core.runtime.Path(domainModelURI.trimSegments(1).toFileString());
+ } else {
+ // TODO : use some default path
+ throw new IllegalArgumentException("Unsupported URI: " + domainModelURI); «nonNLS(1)»
+ }
+ myFileCreationPage.setContainerFullPath(filePath);
+ myFileCreationPage.setFileName(«xptDiagramEditorUtil.qualifiedClassName(it)».getUniqueFileName(
+ filePath, fileName, "«editorGen.diagramFileExtension»")); «nonNLS(1)»
+
+ diagramRootElementSelectionPage = new DiagramRootElementSelectionPage(«xptExternalizer.accessorCall(editorGen,
+ nameKey(i18nKeyForNewDiagramFileWizardRootSelectionPage(it)))»);
+ diagramRootElementSelectionPage.setTitle(«xptExternalizer.accessorCall(editorGen,
+ titleKey(i18nKeyForNewDiagramFileWizardRootSelectionPage(it)))»);
+ diagramRootElementSelectionPage.setDescription(«xptExternalizer.accessorCall(editorGen,
+ descriptionKey(i18nKeyForNewDiagramFileWizardRootSelectionPage(it)))»);
+ diagramRootElementSelectionPage.setModelElement(diagramRoot);
+
+ myEditingDomain = editingDomain;
+ }
+
+ «generatedMemberComment»
+ public void addPages() {
+ addPage(myFileCreationPage);
+ addPage(diagramRootElementSelectionPage);
+ }
+
+ «generatedMemberComment»
+ public boolean performFinish() {
+ java.util.LinkedList<org.eclipse.core.resources.IFile> affectedFiles = new java.util.LinkedList<org.eclipse.core.resources.IFile>();
+ «IF null == editorGen.application»
+ org.eclipse.core.resources.IFile diagramFile = myFileCreationPage.createNewFile();
+ «xptDiagramEditorUtil.callSetCharset(it, 'diagramFile')»
+ affectedFiles.add(diagramFile);
+ org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createPlatformResourceURI(diagramFile.getFullPath().toString(), true);
+ «ELSE»
+ org.eclipse.core.runtime.IPath diagramModelPath = myFileCreationPage.getContainerFullPath().append(myFileCreationPage.getFileName());
+ org.eclipse.emf.common.util.URI diagramModelURI = org.eclipse.emf.common.util.URI.createFileURI(diagramModelPath.toString());
+ «ENDIF»
+ org.eclipse.emf.ecore.resource.ResourceSet resourceSet = myEditingDomain.getResourceSet();
+ final org.eclipse.emf.ecore.resource.Resource diagramResource = resourceSet.createResource(diagramModelURI);
+ org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand command =
+ new org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand(
+ myEditingDomain, «xptExternalizer.accessorCall(editorGen, i18nKeyForNewDiagramFileWizardInitDiagramCommand(it))», affectedFiles) {
+
+ «overrideC»
+ protected org.eclipse.gmf.runtime.common.core.command.CommandResult doExecuteWithResult(
+ org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)
+ throws org.eclipse.core.commands.ExecutionException {
+ int diagramVID = «xptVisualIDRegistry.getDiagramVisualIDMethodCall(it)»(diagramRootElementSelectionPage.getModelElement());
+ if (diagramVID != «VisualIDRegistry::visualID(it)») {
+ return org.eclipse.gmf.runtime.common.core.command.CommandResult.newErrorCommandResult(
+ «xptExternalizer.accessorCall(editorGen, i18nKeyForNewDiagramFileWizardIncorrectRootError(it))»);
+ }
+ org.eclipse.gmf.runtime.notation.Diagram diagram =
+ org.eclipse.gmf.runtime.diagram.core.services.ViewService.createDiagram(
+ diagramRootElementSelectionPage.getModelElement(), «VisualIDRegistry::modelID(it)»,
+ «xptActivator.preferenceHintAccess(editorGen)»);
+ diagramResource.getContents().add(diagram);
+ «IF editorGen.sameFileForDiagramAndModel»
+ diagramResource.getContents().add(diagram.getElement());
+ «ENDIF»
+ «IF !it.synchronized»
+ new «xptDiagramContentInitializer.qualifiedClassName(it)»().initDiagramContent(diagram);
+ «ENDIF»
+ return org.eclipse.gmf.runtime.common.core.command.CommandResult.newOKCommandResult();
+ }
+ };
+ try {
+ org.eclipse.core.commands.operations.OperationHistoryFactory.getOperationHistory().execute(
+ command, new org.eclipse.core.runtime.NullProgressMonitor(), null);
+ diagramResource.save(«xptDiagramEditorUtil.callGetSaveOptions(it)»);
+ «xptDiagramEditorUtil.qualifiedClassName(it)».openDiagram(diagramResource);
+ } catch (org.eclipse.core.commands.ExecutionException e) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError(
+ "Unable to create model and diagram", e); «nonNLS(1)»
+ } catch (java.io.IOException ex) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError(
+ "Save operation failed for: " + diagramModelURI, ex); «nonNLS(1)»
+ } catch (org.eclipse.ui.PartInitException ex) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError(
+ "Unable to open editor", ex); «nonNLS(1)»
+ }
+ return true;
+ }
+
+ «generatedClassComment»
+ private static class DiagramRootElementSelectionPage extends «xptModelElementSelectionPage.qualifiedClassName(it)» {
+
+ «generatedMemberComment»
+ protected DiagramRootElementSelectionPage(String pageName) {
+ super(pageName);
+ }
+
+ «generatedMemberComment»
+ protected String getSelectionTitle() {
+ return «xptExternalizer.accessorCall(editorGen, i18nKeyForNewDiagramFileWizardRootSelectionPageSelectionTitle(it))»;
+ }
+
+ «generatedMemberComment»
+ protected boolean validatePage() {
+ if (getModelElement() == null) {
+ setErrorMessage(«xptExternalizer.accessorCall(editorGen,
+ i18nKeyForNewDiagramFileWizardRootSelectionPageNoSelectionMessage(it))»);
+ return false;
+ }
+ boolean result = org.eclipse.gmf.runtime.diagram.core.services.ViewService.getInstance().provides(
+ new org.eclipse.gmf.runtime.diagram.core.services.view.CreateDiagramViewOperation(
+ new org.eclipse.gmf.runtime.emf.core.util.EObjectAdapter(getModelElement()),
+ «VisualIDRegistry::modelID(it)», «xptActivator.preferenceHintAccess(editorGen)»));
+ setErrorMessage(result ? null : «xptExternalizer.accessorCall(editorGen,
+ i18nKeyForNewDiagramFileWizardRootSelectionPageInvalidSelectionMessage(it))»);
+ return result;
+ }
+ }
+ }
+ '''
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetInfo.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetInfo.xtend
new file mode 100644
index 00000000000..7c552041346
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetInfo.xtend
@@ -0,0 +1,60 @@
+package aspects.xpt.editor
+
+import com.google.inject.Inject
+import xpt.Common
+import xpt.CodeStyle
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import com.google.inject.Singleton
+
+@Singleton class ResourceSetInfo extends xpt.editor.ResourceSetInfo {
+
+ @Inject extension Common
+ @Inject extension CodeStyle
+
+ override handleResourceChangedSD(GenDiagram it) '''
+ «generatedMemberComment»
+ public boolean handleResourceChanged(final org.eclipse.emf.ecore.resource.Resource resource) {
+ «updateSynchStateSD(it)»
+ org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {
+ «overrideI»
+ public void run() {
+ handleElementChanged(ResourceSetInfo.this, resource, null);
+ }
+ });
+ return true;
+ }
+ '''
+
+ override handleResourceDeletedSD(GenDiagram it) '''
+ «generatedMemberComment»
+ public boolean handleResourceDeleted(org.eclipse.emf.ecore.resource.Resource resource) {
+ «updateSynchStateSD(it)»
+ org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {
+ «overrideI»
+ public void run() {
+ fireElementDeleted(ResourceSetInfo.this.getEditorInput());
+ }
+ });
+ return true;
+ }
+ '''
+
+ override handleResourceMovedSD(GenDiagram it) '''
+ «generatedMemberComment»
+ public boolean handleResourceMoved(org.eclipse.emf.ecore.resource.Resource resource, final org.eclipse.emf.common.util.URI newURI) {
+ «updateSynchStateSD(it)»
+ if (myDocument.getDiagram().eResource() == resource) {
+ org.eclipse.swt.widgets.Display.getDefault().asyncExec(new java.lang.Runnable() {
+ «overrideI»
+ public void run() {
+ handleElementMoved(ResourceSetInfo.this.getEditorInput(), newURI);
+ }
+ });
+ } else {
+ handleResourceDeleted(resource);
+ }
+ return true;
+ }
+ '''
+
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetModificationListener.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetModificationListener.xtend
index bb3d554f045..eaddf4da755 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetModificationListener.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ResourceSetModificationListener.xtend
@@ -34,7 +34,7 @@ import xpt.Common
if (resource.isLoaded()) {
boolean modified = false;
for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myInfo.getLoadedResourcesIterator(); it.hasNext() && !modified;) {
- org.eclipse.emf.ecore.resource.Resource nextResource = (org.eclipse.emf.ecore.resource.Resource) it.next();
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
if (nextResource.isLoaded()) {
modified = nextResource.isModified();
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ValidateAction.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ValidateAction.xtend
index 05286f07b54..c22da0057c8 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ValidateAction.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/ValidateAction.xtend
@@ -17,10 +17,17 @@ import com.google.inject.Singleton
import org.eclipse.gmf.codegen.gmfgen.GenDiagram
import xpt.Common
import xpt.editor.DiagramEditorUtil
+import xpt.CodeStyle
+import plugin.Activator
+import xpt.providers.ValidationProvider
@Singleton class ValidateAction extends xpt.editor.ValidateAction {
@Inject extension Common;
+ @Inject extension CodeStyle
+
@Inject DiagramEditorUtil xptDiagramEditorUtil;
+ @Inject Activator xptActivator
+ @Inject ValidationProvider xptValidationProvider
override runNonUIValidation(GenDiagram it) '''
@@ -85,7 +92,7 @@ import xpt.editor.DiagramEditorUtil
diagramEditPart.getDiagramView(),
collectTargetElements(rootStatus, new java.util.HashSet<org.eclipse.emf.ecore.EObject>(), allDiagnostics));
for (java.util.Iterator<org.eclipse.emf.common.util.Diagnostic> it = emfValidationStatus.getChildren().iterator(); it.hasNext();) {
- org.eclipse.emf.common.util.Diagnostic nextDiagnostic = (org.eclipse.emf.common.util.Diagnostic) it.next();
+ org.eclipse.emf.common.util.Diagnostic nextDiagnostic = it.next();
java.util.List<?> data = nextDiagnostic.getData();
if (data != null && !data.isEmpty() && data.get(0) instanceof org.eclipse.emf.ecore.EObject) {
org.eclipse.emf.ecore.EObject element = (org.eclipse.emf.ecore.EObject) data.get(0);
@@ -126,18 +133,81 @@ import xpt.editor.DiagramEditorUtil
java.util.List<?> data = diagnostic.getData();
org.eclipse.emf.ecore.EObject target = null;
if (data != null && !data.isEmpty() && data.get(0) instanceof org.eclipse.emf.ecore.EObject) {
- target = (org.eclipse.emf.ecore.EObject) data.get(0);
- targetElementCollector.add(target);
- allDiagnostics.add(diagnostic);
+ target = (org.eclipse.emf.ecore.EObject) data.get(0);
+ targetElementCollector.add(target);
+ allDiagnostics.add(diagnostic);
}
if (diagnostic.getChildren() != null && !diagnostic.getChildren().isEmpty()) {
- for (java.util.Iterator<org.eclipse.emf.common.util.Diagnostic> it = diagnostic.getChildren().iterator(); it.hasNext();) {
- collectTargetElements((org.eclipse.emf.common.util.Diagnostic) it.next(),
- targetElementCollector, allDiagnostics);
- }
+ for (java.util.Iterator<org.eclipse.emf.common.util.Diagnostic> it = diagnostic.getChildren().iterator(); it.hasNext();) {
+ collectTargetElements(it.next(), targetElementCollector, allDiagnostics);
+ }
}
return targetElementCollector;
}
'''
+ override run(GenDiagram it) '''
+
+ «generatedMemberComment»
+ public void run() {
+ org.eclipse.ui.IWorkbenchPart workbenchPart = page.getActivePart();
+ if (workbenchPart instanceof org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart) {
+ final org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart part = (org.eclipse.gmf.runtime.diagram.ui.parts.IDiagramWorkbenchPart) workbenchPart;
+ try {
+ «IF editorGen.application == null»
+ new org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation(
+ «ENDIF»
+ new org.eclipse.jface.operation.IRunnableWithProgress() {
+
+ «overrideI»
+ public void run(org.eclipse.core.runtime.IProgressMonitor monitor)
+ throws InterruptedException, java.lang.reflect.InvocationTargetException {
+ runValidation(part.getDiagramEditPart(), part.getDiagram());
+ }
+ }
+ «IF editorGen.application == null»
+ )
+ «ENDIF»
+ .run(new org.eclipse.core.runtime.NullProgressMonitor());
+ } catch (Exception e) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError("Validation action failed", e); «nonNLS(1)»
+ }
+ }
+ }
+ '''
+
+ override runValidationWithEP(GenDiagram it) '''
+
+ «generatedMemberComment»
+ public static void runValidation(org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart diagramEditPart, org.eclipse.gmf.runtime.notation.View view) {
+ final org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart fpart = diagramEditPart;
+ final org.eclipse.gmf.runtime.notation.View fview = view;
+ org.eclipse.emf.transaction.TransactionalEditingDomain txDomain = org.eclipse.emf.transaction.util.TransactionUtil.getEditingDomain(view);
+ «xptValidationProvider.qualifiedClassName(it)».runWithConstraints(txDomain, new Runnable() {
+
+ «overrideI»
+ public void run() {
+ validate(fpart, fview);
+ }
+ });
+ }
+ '''
+
+ override runEMFValidator(GenDiagram it) '''
+
+ «generatedMemberComment»
+ private static org.eclipse.emf.common.util.Diagnostic runEMFValidator(
+ org.eclipse.gmf.runtime.notation.View target) {
+ if (target.isSetElement() && target.getElement() != null) {
+ return new org.eclipse.emf.ecore.util.Diagnostician() {
+
+ «overrideC»
+ public String getObjectLabel(org.eclipse.emf.ecore.EObject eObject) {
+ return org.eclipse.gmf.runtime.emf.core.util.EMFCoreUtil.getQualifiedName(eObject, true);
+ }
+ }.validate(target.getElement());
+ }
+ return org.eclipse.emf.common.util.Diagnostic.OK_INSTANCE;
+ }
+ '''
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/VisualIDRegistry.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/VisualIDRegistry.xtend
index a6dfcc9fad0..b799fa7b3c3 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/VisualIDRegistry.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/editor/VisualIDRegistry.xtend
@@ -163,4 +163,18 @@ import org.eclipse.gmf.codegen.gmfgen.GenConstraint
};
'''
+ override getModelID(GenDiagram it) '''
+ «generatedMemberComment()»
+ public static String «getModelIDMethodName(it)»(org.eclipse.gmf.runtime.notation.View view) {
+ org.eclipse.gmf.runtime.notation.View diagram = view.getDiagram();
+ while (view != diagram) {
+ org.eclipse.emf.ecore.EAnnotation annotation = view.getEAnnotation("Shortcut"); «nonNLS(1)»
+ if (annotation != null) {
+ return annotation.getDetails().get("modelID"); «nonNLS(1)»
+ }
+ view = (org.eclipse.gmf.runtime.notation.View) view.eContainer();
+ }
+ return diagram != null ? diagram.getType() : null;
+ }
+ '''
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/expressions/AbstractExpression.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/expressions/AbstractExpression.xtend
new file mode 100644
index 00000000000..aee02cc7c51
--- /dev/null
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/expressions/AbstractExpression.xtend
@@ -0,0 +1,64 @@
+package aspects.xpt.expressions
+
+import org.eclipse.gmf.codegen.gmfgen.GenDiagram
+import com.google.inject.Inject
+import aspects.xpt.Common
+import com.google.inject.Singleton
+
+@Singleton class AbstractExpression extends xpt.expressions.AbstractExpression {
+
+ @Inject extension Common
+
+ override performCast(GenDiagram it) '''
+ «generatedMemberComment(
+ 'Expression may return number value which is not directly compatible with feature type (e.g. Double when Integer is expected), or EEnumLiteral meta-object when literal instance is expected')»
+ public static Object performCast(Object value, org.eclipse.emf.ecore.EDataType targetType) {
+ if (targetType instanceof org.eclipse.emf.ecore.EEnum) {
+ if (value instanceof org.eclipse.emf.ecore.EEnumLiteral) {
+ org.eclipse.emf.ecore.EEnumLiteral literal = (org.eclipse.emf.ecore.EEnumLiteral) value;
+ return (literal.getInstance() != null) ? literal.getInstance() : literal;
+ }
+ }
+ if (false == value instanceof Number || targetType == null || targetType.getInstanceClass() == null) {
+ return value;
+ }
+ Class<?> targetClass = targetType.getInstanceClass();
+ Number num = (Number) value;
+ Class<?> valClass = value.getClass();
+ Class<?> targetWrapperClass = targetClass;
+ if (targetClass.isPrimitive()) {
+ targetWrapperClass = org.eclipse.emf.ecore.util.EcoreUtil.wrapperClassFor(targetClass);
+ }
+ if (valClass.equals(targetWrapperClass)) {
+ return value;
+ }
+ if (Number.class.isAssignableFrom(targetWrapperClass)) {
+ if (targetWrapperClass.equals(Byte.class)) {
+ return new Byte(num.byteValue());
+ }
+ if (targetWrapperClass.equals(Integer.class)) {
+ return new Integer(num.intValue());
+ }
+ if (targetWrapperClass.equals(Short.class)) {
+ return new Short(num.shortValue());
+ }
+ if (targetWrapperClass.equals(Long.class)) {
+ return new Long(num.longValue());
+ }
+ if (targetWrapperClass.equals(java.math.BigInteger.class)) {
+ return java.math.BigInteger.valueOf(num.longValue());
+ }
+ if (targetWrapperClass.equals(Float.class)) {
+ return new Float(num.floatValue());
+ }
+ if (targetWrapperClass.equals(Double.class)) {
+ return new Double(num.doubleValue());
+ }
+ if (targetWrapperClass.equals(java.math.BigDecimal.class)) {
+ return new java.math.BigDecimal(num.doubleValue());
+ }
+ }
+ return value;
+ }
+ '''
+} \ No newline at end of file
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend
index e091a31e6cc..7f1888e89f8 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/AbstractNavigatorItem.xtend
@@ -15,10 +15,11 @@ package aspects.xpt.navigator
import com.google.inject.Inject
import com.google.inject.Singleton
import org.eclipse.gmf.codegen.gmfgen.GenNavigator
-import xpt.Common
-
+import xpt.Common import xpt.CodeStyle
+
@Singleton class AbstractNavigatorItem extends xpt.navigator.AbstractNavigatorItem {
@Inject extension Common;
+ @Inject extension CodeStyle
override def registerAdapterFactory(GenNavigator it) '''
«generatedMemberComment()»
@@ -26,12 +27,14 @@ import xpt.Common
@SuppressWarnings("rawtypes")
final Class[] supportedTypes = new Class[] { org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class };
final org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor propertySheetPageContributor = new org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor() {
+ «overrideI(it.editorGen.diagram)»
public String getContributorId() {
return "«editorGen.plugin.ID»"; «nonNLS(1)»
}
};
org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adaptableObject instanceof «qualifiedClassName(it)» && adapterType == org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor.class) {
@@ -40,6 +43,7 @@ import xpt.Common
return null;
}
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Class[] getAdapterList() {
return supportedTypes;
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend
index 26f5a8579bb..26322174d6a 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/DomainNavigatorItem.xtend
@@ -15,10 +15,11 @@ package aspects.xpt.navigator
import com.google.inject.Inject
import org.eclipse.gmf.codegen.gmfgen.GenNavigator
import xpt.Common
+import xpt.CodeStyle
@com.google.inject.Singleton class DomainNavigatorItem extends xpt.navigator.DomainNavigatorItem {
@Inject extension Common;
-
+ @Inject extension CodeStyle
override def registerAdapterFactory(GenNavigator it) '''
«generatedMemberComment()»
@@ -27,6 +28,7 @@ import xpt.Common
final Class[] supportedTypes = new Class[] { org.eclipse.emf.ecore.EObject.class, org.eclipse.ui.views.properties.IPropertySource.class };
org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adaptableObject instanceof «qualifiedClassName(it)») {
@@ -43,6 +45,7 @@ import xpt.Common
return null;
}
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Class[] getAdapterList() {
return supportedTypes;
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend
index 238207b8f24..7ffd0a151d7 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorContentProvider.xtend
@@ -22,13 +22,14 @@ import org.eclipse.gmf.codegen.gmfgen.GenNavigatorReferenceType
import xpt.Common
import xpt.Common_qvto
import xpt.editor.VisualIDRegistry
-import xpt.navigator.Utils_qvto
-
+import xpt.navigator.Utils_qvto import xpt.CodeStyle
+
@Singleton class NavigatorContentProvider extends xpt.navigator.NavigatorContentProvider {
@Inject extension Common;
@Inject extension Common_qvto;
@Inject extension Utils_qvto;
-
+ @Inject extension CodeStyle
+
@Inject VisualIDRegistry xptVisualIDRegistry;
@@ -63,7 +64,7 @@ import xpt.navigator.Utils_qvto
override processChanges(GenNavigator it) '''
for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
- org.eclipse.emf.ecore.resource.Resource nextResource = (org.eclipse.emf.ecore.resource.Resource) it.next();
+ org.eclipse.emf.ecore.resource.Resource nextResource = it.next();
nextResource.unload();
}
if (myViewer != null) {
@@ -77,6 +78,8 @@ import xpt.navigator.Utils_qvto
myEditingDomain = (org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) editingDomain;
@SuppressWarnings("serial")
java.util.Map<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean> map = new java.util.HashMap<org.eclipse.emf.ecore.resource.Resource, java.lang.Boolean>() {
+
+ «overrideI(it.editorGen.diagram)»
public java.lang.Boolean get(java.lang.Object key) {
if (!containsKey(key)) {
if (key instanceof org.eclipse.emf.ecore.resource.Resource) {
@@ -88,6 +91,8 @@ import xpt.navigator.Utils_qvto
};
myEditingDomain.setResourceToReadOnlyMap(map);
myViewerRefreshRunnable = new Runnable() {
+
+ «overrideI(it.editorGen.diagram)»
public void run() {
if (myViewer != null) {
myViewer.refresh();
@@ -95,17 +100,22 @@ import xpt.navigator.Utils_qvto
}
};
myWorkspaceSynchronizer = new org.eclipse.emf.workspace.util.WorkspaceSynchronizer(editingDomain, new org.eclipse.emf.workspace.util.WorkspaceSynchronizer.Delegate() {
+
+ «overrideC(it.editorGen.diagram)»
public void dispose() {
}
+ «overrideC(it.editorGen.diagram)»
public boolean handleResourceChanged(final org.eclipse.emf.ecore.resource.Resource resource) {
«processChanges(it)»
}
+ «overrideC(it.editorGen.diagram)»
public boolean handleResourceDeleted(org.eclipse.emf.ecore.resource.Resource resource) {
«processChanges(it)»
}
+ «overrideC(it.editorGen.diagram)»
public boolean handleResourceMoved(org.eclipse.emf.ecore.resource.Resource resource, final org.eclipse.emf.common.util.URI newURI) {
«processChanges(it)»
}
@@ -127,7 +137,7 @@ import xpt.navigator.Utils_qvto
myViewerRefreshRunnable = null;
for (java.util.Iterator<org.eclipse.emf.ecore.resource.Resource> it = myEditingDomain.getResourceSet().getResources().iterator(); it.hasNext();) {
- org.eclipse.emf.ecore.resource.Resource resource = (org.eclipse.emf.ecore.resource.Resource) it.next();
+ org.eclipse.emf.ecore.resource.Resource resource = it.next();
resource.unload();
}
@@ -178,96 +188,100 @@ import xpt.navigator.Utils_qvto
'''
override utilityMethods(GenNavigator it) '''
-««« «generatedMemberComment»
-««« private java.util.Collection getLinksSourceByType(java.util.Collection edges, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = edges.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();
-««« org.eclipse.gmf.runtime.notation.View nextEdgeSource = nextEdge.getSource();
-««« if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) {
-««« result.add(nextEdgeSource);
-««« }
-««« }
-««« return result;
-««« }
-«««
-««« «generatedMemberComment»
-««« private java.util.Collection getLinksTargetByType(java.util.Collection edges, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = edges.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();
-««« org.eclipse.gmf.runtime.notation.View nextEdgeTarget = nextEdge.getTarget();
-««« if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) {
-««« result.add(nextEdgeTarget);
-««« }
-««« }
-««« return result;
-««« }
-««« «generatedMemberComment»
-««« private java.util.Collection getOutgoingLinksByType(java.util.Collection nodes, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
-««« result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));
-««« }
-««« return result;
-««« }
-«««
-««« «generatedMemberComment»
-««« private java.util.Collection getIncomingLinksByType(java.util.Collection nodes, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
-««« result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));
-««« }
-««« return result;
-««« }
-«««
-««« «generatedMemberComment»
-««« private java.util.Collection getChildrenByType(java.util.Collection nodes, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
-««« result.addAll(selectViewsByType(nextNode.getChildren(), type));
-««« }
-««« return result;
-««« }
+ «IF getNavigatorContainerNodes(it).notEmpty»
+ «generatedMemberComment»
+ private java.util.Collection getLinksSourceByType(java.util.Collection edges, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = edges.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();
+ org.eclipse.gmf.runtime.notation.View nextEdgeSource = nextEdge.getSource();
+ if (type.equals(nextEdgeSource.getType()) && isOwnView(nextEdgeSource)) {
+ result.add(nextEdgeSource);
+ }
+ }
+ return result;
+ }
+
+ «generatedMemberComment»
+ private java.util.Collection getLinksTargetByType(java.util.Collection edges, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = edges.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.Edge nextEdge = (org.eclipse.gmf.runtime.notation.Edge) it.next();
+ org.eclipse.gmf.runtime.notation.View nextEdgeTarget = nextEdge.getTarget();
+ if (type.equals(nextEdgeTarget.getType()) && isOwnView(nextEdgeTarget)) {
+ result.add(nextEdgeTarget);
+ }
+ }
+ return result;
+ }
+ «generatedMemberComment»
+ private java.util.Collection getOutgoingLinksByType(java.util.Collection nodes, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
+ result.addAll(selectViewsByType(nextNode.getSourceEdges(), type));
+ }
+ return result;
+ }
+
+ «generatedMemberComment»
+ private java.util.Collection getIncomingLinksByType(java.util.Collection nodes, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
+ result.addAll(selectViewsByType(nextNode.getTargetEdges(), type));
+ }
+ return result;
+ }
«««
-««« «generatedMemberComment»
-««« private java.util.Collection getDiagramLinksByType(java.util.Collection diagrams, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = diagrams.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.Diagram nextDiagram = (org.eclipse.gmf.runtime.notation.Diagram) it.next();
-««« result.addAll(selectViewsByType(nextDiagram.getEdges(), type));
-««« }
-««« return result;
-««« }
-««« «generatedMemberComment»
-««« private java.util.Collection selectViewsByType(java.util.Collection views, String type) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = views.iterator(); it.hasNext();) {
-««« org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next();
-««« if (type.equals(nextView.getType()) && isOwnView(nextView)) {
-««« result.add(nextView);
-««« }
-««« }
-««« return result;
-««« }
+ «generatedMemberComment»
+ private java.util.Collection getChildrenByType(java.util.Collection nodes, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = nodes.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.View nextNode = (org.eclipse.gmf.runtime.notation.View) it.next();
+ result.addAll(selectViewsByType(nextNode.getChildren(), type));
+ }
+ return result;
+ }
+ «generatedMemberComment»
+ private java.util.Collection getDiagramLinksByType(java.util.Collection diagrams, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = diagrams.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.Diagram nextDiagram = (org.eclipse.gmf.runtime.notation.Diagram) it.next();
+ result.addAll(selectViewsByType(nextDiagram.getEdges(), type));
+ }
+ return result;
+ }
+ «generatedMemberComment»
+ private java.util.Collection selectViewsByType(java.util.Collection views, String type) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = views.iterator(); it.hasNext();) {
+ org.eclipse.gmf.runtime.notation.View nextView = (org.eclipse.gmf.runtime.notation.View) it.next();
+ if (type.equals(nextView.getType()) && isOwnView(nextView)) {
+ result.add(nextView);
+ }
+ }
+ return result;
+ }
+
+ «generatedMemberComment»
+ private java.util.Collection createNavigatorItems(java.util.Collection views, Object parent, boolean isLeafs) {
+ java.util.Collection result = new java.util.ArrayList();
+ for (java.util.Iterator it = views.iterator(); it.hasNext();) {
+ result.add(new «getNavigatorItemQualifiedClassName()»((org.eclipse.gmf.runtime.notation.View) it.next(), parent, isLeafs));
+ }
+ return result;
+ }
+ «ENDIF»
+
«generatedMemberComment()»
private boolean isOwnView(org.eclipse.gmf.runtime.notation.View view) {
return «VisualIDRegistry::modelID(editorGen.diagram)».equals(«xptVisualIDRegistry.
getModelIDMethodCall(editorGen.diagram)»(view));
}
-««« «generatedMemberComment»
-««« private java.util.Collection createNavigatorItems(java.util.Collection views, Object parent, boolean isLeafs) {
-««« java.util.Collection result = new java.util.ArrayList();
-««« for (java.util.Iterator it = views.iterator(); it.hasNext();) {
-««« result.add(new «getNavigatorItemQualifiedClassName()»((org.eclipse.gmf.runtime.notation.View) it.next(), parent, isLeafs));
-««« }
-««« return result;
-««« }
+
«getForeignShortcuts(it)»
'''
@@ -301,7 +315,7 @@ import xpt.navigator.Utils_qvto
}
'''
-
+ override createEditingDomain(GenNavigator it) '''org.eclipse.emf.workspace.WorkspaceEditingDomainFactory.INSTANCE.createEditingDomain()'''
//BEGIN: PapyrusGenCode
//Loop to call generator of each method
@@ -343,7 +357,7 @@ private Object[] getViewChildrenFor«it.editPartClassName»(org.eclipse.gmf.runtim
«var segment = path.segments.get(segmentsIterator-1)»
«IF referencesIterator==1 && pathsIterator==1 && segmentsIterator==1»java.util.Collection «ENDIF»
connectedViews = «childrenMethodName(segment.from,reference.referenceType, segment) »
- («IF segmentsIterator==0»java.util.Collections.singleton(view)«ELSE»connectedViews«ENDIF»
+ («IF segmentsIterator==1»java.util.Collections.singleton(view)«ELSE»connectedViews«ENDIF»
, «xptVisualIDRegistry.typeMethodCall(segment.to)»);
«ENDFOR»
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend
index d75a69b321d..2580c603b74 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/navigator/NavigatorItem.xtend
@@ -15,10 +15,11 @@ package aspects.xpt.navigator
import com.google.inject.Inject
import com.google.inject.Singleton
import org.eclipse.gmf.codegen.gmfgen.GenNavigator
-import xpt.Common
-
+import xpt.Common import xpt.CodeStyle
+
@Singleton class NavigatorItem extends xpt.navigator.NavigatorItem {
@Inject extension Common;
+ @Inject extension CodeStyle
override def registerAdapterFactory(GenNavigator it) '''
«generatedMemberComment()»
@@ -27,6 +28,7 @@ import xpt.Common
final Class[] supportedTypes = new Class[] { org.eclipse.gmf.runtime.notation.View.class, org.eclipse.emf.ecore.EObject.class };
org.eclipse.core.runtime.Platform.getAdapterManager().registerAdapters(new org.eclipse.core.runtime.IAdapterFactory() {
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Object getAdapter(Object adaptableObject, Class adapterType) {
if (adaptableObject instanceof «qualifiedClassName(it)» && (adapterType == org.eclipse.gmf.runtime.notation.View.class || adapterType == org.eclipse.emf.ecore.EObject.class)) {
@@ -35,6 +37,7 @@ import xpt.Common
return null;
}
+ «overrideI(it.editorGen.diagram)»
@SuppressWarnings("rawtypes")
public Class[] getAdapterList() {
return supportedTypes;
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/plugin.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/plugin.xtend
index 99a1b323229..ee2a39bf808 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/plugin.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/plugin/plugin.xtend
@@ -11,6 +11,7 @@ import org.eclipse.gmf.codegen.gmfgen.ToolGroup
import xpt.Common
import xpt.editor.extensions
import xpt.plugin.pluginUtils
+import org.eclipse.emf.ecore.EObject
@Singleton class plugin extends xpt.plugin.plugin {
@@ -102,7 +103,7 @@ import xpt.plugin.pluginUtils
<predefinedEntry id="standardGroup/noteStack/textTool" remove="true"/>
<predefinedEntry id="standardGroup/noteStack/noteattachmentTool" remove="true"/>
- «FOR tool : collectGroups(diagram.palette)»
+ «FOR tool : diagram.palette.groups»
«groupUsage(tool)»
«ENDFOR»
</contribution>
@@ -113,29 +114,54 @@ import xpt.plugin.pluginUtils
'''
def groupUsage(ToolGroup it) '''
- <entry
- description="«it.description»"
- id=«IF isQuoted(id,'"')»«id»«ELSE»"«id»"«ENDIF»
- kind="drawer"
- label="«it.title»"
- large_icon="«largeIconPath»"
- path="/"
- small_icon="«smallIconPath»">
- <expand
- force="true">
- </expand>
- </entry>
- ««« TODO: call sub entries...
- «FOR entry : it.entries»
- «toolUsage(entry as ToolEntry, it)»
- «ENDFOR»
+ <entry
+ description="«it.description»"
+ id=«IF isQuoted(id,'"')»«id»«ELSE»"«id»"«ENDIF»
+ kind="«IF it.stack && it.toolsOnly»stack«ELSE»drawer«ENDIF»"
+ label="«it.title»"
+ large_icon="«largeIconPath»"
+ path="«getPath(it)»"
+ small_icon="«smallIconPath»">
+ <expand
+ force="true">
+ </expand>
+ </entry>
+ ««« TODO: call sub entries...
+ «FOR entry : it.entries.filter[e| e instanceof ToolEntry]»
+ «toolUsage(entry, it)»
+ «ENDFOR»
+ «FOR entry : it.entries.filter[e| e instanceof ToolGroup]»
+ «toolUsage(entry, it)»
+ «ENDFOR»
'''
-
- def toolUsage(ToolEntry it, ToolGroup group) '''
- <predefinedEntry
- id=«IF isQuoted(id,'"')»«id»«ELSE»"«id»"«ENDIF»
- path="«getToolPath(group.id)»">
- </predefinedEntry>
+
+ private def getPath(ToolEntry it) {
+ return buildPath(it.eContainer);
+ }
+
+ private def getPath(ToolGroup it) {
+ return buildPath(it.eContainer);
+ }
+
+ private def buildPath(EObject it) {
+ var path = new StringBuilder();
+ var container = it;
+ while (container instanceof ToolGroup) {
+ path.insert(0, getToolPath((container as ToolGroup).id));
+ container = container.eContainer;
+ }
+ return if(path.length() != 0) path.toString else "/" ;
+ }
+
+ def dispatch toolUsage(ToolEntry it, ToolGroup group) '''
+ <predefinedEntry
+ id=«IF isQuoted(id,'"')»«id»«ELSE»"«id»"«ENDIF»
+ path="«getPath(it)»">
+ </predefinedEntry>
+ '''
+
+ def dispatch toolUsage(ToolGroup it, ToolGroup group) '''
+ «groupUsage(it)»
'''
def predefinedEntryDefinition(AbstractToolEntry it) '''
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementInitializers.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementInitializers.xtend
index 4d3c2b373d9..ba0b9dff324 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementInitializers.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementInitializers.xtend
@@ -28,6 +28,8 @@ import metamodel.MetaModel
import xpt.expressions.AbstractExpression
import xpt.providers.ElementInitializers_qvto
import aspects.xpt.Common
+import org.eclipse.gmf.codegen.gmfgen.GenFeatureSeqInitializer
+import plugin.Activator
/**
* XXX should generate this class only when there is initialization logic defined in the model
@@ -37,6 +39,7 @@ import aspects.xpt.Common
@Inject extension Common;
@Inject extension ElementInitializers_qvto;
+ @Inject Activator xptActivator
@Inject AbstractExpression xptAbstractExpression;
@Inject MetaModel xptMetaModel
@@ -97,4 +100,16 @@ import aspects.xpt.Common
«ENDIF/*is literal expression*/»
'''
+ override dispatch CharSequence initMethod(GenFeatureSeqInitializer it, GenCommonBase diagramElement) '''
+ «generatedMemberComment»
+ public void init_«diagramElement.getUniqueIdentifier()»(«xptMetaModel.QualifiedClassName(elementClass)» instance) {
+ try {
+ «FOR i : it.initializers»
+ «performInit(i, diagramElement, 'instance', elementClass, <Integer>newLinkedList(initializers.indexOf(i)))»
+ «ENDFOR»
+ } catch(RuntimeException e) {
+ «xptActivator.qualifiedClassName(diagramElement.getDiagram().editorGen.plugin)».getInstance().logError("Element initialization failed", e); //$NON-NLS-1$
+ }
+ }
+ '''
}
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend
index bebc661cb99..35175e2e72c 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ElementTypes.xtend
@@ -37,7 +37,7 @@ import xpt.Common
«IF link.modelFacet != null»«bindUniqueIdentifierToNamedElement(link.modelFacet, link.getUniqueIdentifier())»«ENDIF»
«ENDFOR»
}
- return (org.eclipse.emf.ecore.ENamedElement) elements.get(type);
+ return elements.get(type);
}
'''
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend
index 7392197e7d3..7adbabfee98 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/MarkerNavigationProvider.xtend
@@ -70,7 +70,7 @@ import xpt.Common
marker = file.createMarker(MARKER_TYPE);
marker.setAttribute(org.eclipse.core.resources.IMarker.MESSAGE, message);
marker.setAttribute(org.eclipse.core.resources.IMarker.LOCATION, location);
- marker.setAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, elementId);
+ marker.setAttribute(org.eclipse.gmf.runtime.common.core.resources.IMarker.ELEMENT_ID, elementId);
int markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_INFO;
if (statusSeverity == org.eclipse.core.runtime.IStatus.WARNING) {
markerSeverity = org.eclipse.core.resources.IMarker.SEVERITY_WARNING;
diff --git a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ValidationProvider.xtend b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ValidationProvider.xtend
index d48d7a42987..d731bc26480 100644
--- a/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ValidationProvider.xtend
+++ b/plugins/developer/org.eclipse.papyrus.def/xtend/aspects/xpt/providers/ValidationProvider.xtend
@@ -23,14 +23,17 @@ import xpt.Common
import xpt.Common_qvto
import xpt.GenAuditRoot_qvto
import xpt.editor.VisualIDRegistry
+import plugin.Activator
+import xpt.CodeStyle
@Singleton class ValidationProvider extends xpt.providers.ValidationProvider {
@Inject extension Common;
@Inject extension Common_qvto;
@Inject extension GenAuditRoot_qvto;
+ @Inject extension CodeStyle
@Inject VisualIDRegistry xptVisualIDRegistry;
-
+ @Inject Activator xptActivator
override selectors(GenAuditRoot it) '''
@@ -75,4 +78,31 @@ import xpt.editor.VisualIDRegistry
«ENDIF»
«ENDIF»
'''
+
+ override runWithActiveConstraints(GenDiagram it) '''
+ «generatedMemberComment»
+ public static void runWithConstraints(org.eclipse.emf.transaction.TransactionalEditingDomain editingDomain, Runnable operation) {
+ final Runnable op = operation;
+ Runnable task = new Runnable() {
+ «overrideI»
+ public void run() {
+ try {
+ constraintsActive = true;
+ op.run();
+ } finally {
+ constraintsActive = false;
+ }
+ }
+ };
+ if(editingDomain != null) {
+ try {
+ editingDomain.runExclusive(task);
+ } catch (Exception e) {
+ «xptActivator.qualifiedClassName(editorGen.plugin)».getInstance().logError("Validation failed", e); «nonNLS(1)»
+ }
+ } else {
+ task.run();
+ }
+ }
+ '''
}

Back to the top